Eine unbestimmte Anzahl von buttons überwachen?

Hi!

Ich schreibe momentan an einem Newsscript.
Mittlerweile bin ich bei dem Edit- und Löschenbutton angelangt.

Leider bekomme ich es nicht ganz auf die Reihe, das Programm reagiert wenn ich auf einen Button klicke.

Hier mein Code:

<?php include('db_connect.php');
function tabelle\_auslesen() { $ergebnis = mysql\_query("SELECT \* FROM news"); $i = 0; echo " "; while ($inhalt = mysql\_fetch\_array($ergebnis)) { $i++; echo " $inhalt[1]$inhalt[2]$inhalt[3] "; } echo ""; } function editieren() { $ergebnis = mysql\_query("SELECT \* FROM news"); while ($inhalt = mysql\_fetch\_array($ergebnis)) { echo " Datum: Titel: Meldung:blush:inhalt[3] "; } if (isset($\_POST['submit'])) { //mysql\_query("INSERT INTO news (id, titel, datum, meldung) VALUES ('', '$titel', '$date', '$meldung')"); } } function delete() { echo 'delete'; } for($l=0;$l Ich hoffe ihr könnt mir helfen. MfG Chaos

Hallo,
ich wuerde das so loesen, dass ich alle buttons gleich benenne, aber in jedem Form ein hidden field mit der ID des Eintrags einfuege.
Wenn jetzt z.B. auf loeschen geklickt wird, kannst du anhand des Button-Namens bestimmen, das geloescht werden soll, und anhand der ID bestimmen, welcher Artikel.

Du kannst es natuerlich auch so belassen wie jett. Dann musst du halt den butto-namen auseinander nehmen (del_123 zu del umwandeln) und dann weisst du auch welcher Artikel geloescht werden soll.

Vielleicht hab ich dein Problem aber auch missverstanden.
Gruss
Dirk
P.s. du soltest jedem form-tag eine eindeutige id geben.

Hi!

Erstmal danke für die schnelle Antwort!

Ich werde es wohl nach deinem ersten Vorschlag lösen.

Leider habe ihc noch nciht ganz verstanden, wie ich dann nach dem Klick rausfinde welche Id in dem Form dann gestanden hat.

Tschööö Chaos

 echo "

";

while ($inhalt = mysql_fetch_array($ergebnis))
{
$i++;
echo "
$inhalt[1]$inhalt[2]$inhalt[3]

";

}
echo „“;

}

so müsste das dann ungefähr ausschauen, wobei ich mal davon ausgehen, dass in $inhalt[0] der PrimKey steht :wink:

Wenn du ein hidden/Feld mit dem Namen feld_id verwendest, hast du danach in der Variable $_POST[‚feld_id‘] id jeweilige id stehen.
(und die anderen variablen auch. printf($_POST) )

War das das problem?

Gruss
Dirk

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja, das ahbe ich schon verstanden.

Aber wie wird dann die ID übergeben?

Also was muss ich in meine funktion anch dem klick packen? Wo wird die ID übergeben?

Tschööö

PS: $inhalt[0] ist richtig! .-D

so :wink:

so :wink:

und die ID bekommst du dann, wie alle anderen in PHP mit $_POST[‚id‘] :wink:

OMG! OU Fuck!
Hab des voll verpeilt.

Alles klar, danke!

Weiteres Problem…
Hi nochmal!

Habe jetzt noch ein anderes Problem.

Irgendwas schein mit dem SQL code beim editieren und beim löschen nicht zu stimmen.
Ich bekomme aber nur beim löschen eine Fehlermeldung die mir allerdings nichts sagt.

Hier mein Code:

http://nopaste.php-q.net/145073

Tschööö

1.) Du solltest auch mit $_POST[„ID“] arbeiten anstatt mit $ID, wenn der Wert per POST uebermittelt wird. $ID ist nicht auf allen Systemen verfuergbar (um es kurz zu sagen). $_POST verwenden ist einfach besser!

2.) Im delete sql code:

mysql_query(„DELETE FROM news id =$ID“);

fehlt ein „WHERE“
mysql_query(„DELETE FROM news WHERE id =$ID“);
ausserdem sollte der wert fuer ID (zumindest solange ID keine Zahl ist) in Anfuehrungszeichen gesetzt werden:
mysql_query(„DELETE FROM news WHERE id =’$ID’“);
und schlussendlich bevorzuge ich diese Syntax:
mysql_query(„DELETE FROM news WHERE id =’“.$ID."’");

3.) das mit den Anfuehrungszeichen gilt analog fuer alle Werte in SQL Queries (also auch im UPDATE Query)

4.) Was macht db_connect.php? Hast du dort eine Verbindung hergestellt und eine Datenbank ausgewaehlt? (Wenn die Select-Abfrage in tabelle_auslesen() funktioniert hast du das.)

5.) Welche Fehlermeldung bekommst du denn?
Du solltest die Abfrage der Fehlermledung nicht abhaengig von $result machen. (if (!$result) ). Verwende statt dessen
if (mysql_errno())
oder
if (mysql_error())
Beider Funktionen liefern 0 oder „“ zurueck, wenn kein Fehler aufgetreten ist.

Hoffe geholfen zu haben,
Dirk

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]