Hi Fang,
wenn du im Formular zu jedem Datensatz einen Lösch-Button haben willst, so kannst du diesen als Array definieren,
und als Index die ID des Datensatzes. Kleines Beispiel einer Namenstabelle mit id, Vorname, Nachname:
Schau dir im Browser den Quelltext an. Da siehst du, dass passend zu den Vor-/Nachnamen ein Button mit dem gleichen Index existiert.
Wenn du das Formular durch Klick auf einen der Buttons absendest und mit print_r($_POST['cmd']) das Button-Array ausgibst, so wirst du sehen,
dass NUR der eine, angeklickte Button gesendet wurde:
Array
(
[19] => Löschen
)
Jetzt kannst du einfach mit der Funktion key den Index des Buttons (des Datensatzes) abfragen und deine Löschabfrage formulieren:
Gruß
Günni
wenn du im Formular zu jedem Datensatz einen Lösch-Button haben willst, so kannst du diesen als Array definieren,
und als Index die ID des Datensatzes. Kleines Beispiel einer Namenstabelle mit id, Vorname, Nachname:
PHP-Code:
<?php
/*
* Datensätze abfragen und im Formular ausgeben
*/
$result=mysql_query("select * from tabelle2 order by Nachname");
?>
<form action="" method="post">
<table>
<?php
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
echo "<tr>";
echo "<td><input type=\"text\" name=\"id[$row[id]]\" value=\"$row[id]\"></td>";
echo "<td><input type=\"text\" name=\"vorname[$row[id]]\" value=\"$row[Vorname]\"></td>";
echo "<td><input type=\"text\" name=\"nachname[$row[id]]\" value=\"$row[Nachname]\"></td>";
echo "<td><input type=\"submit\" name=\"cmd[$row[id]]\" value=\"Löschen\"></td>";
echo "</tr>";
}
?>
</table>
</form>
Wenn du das Formular durch Klick auf einen der Buttons absendest und mit print_r($_POST['cmd']) das Button-Array ausgibst, so wirst du sehen,
dass NUR der eine, angeklickte Button gesendet wurde:
Array
(
[19] => Löschen
)
Jetzt kannst du einfach mit der Funktion key den Index des Buttons (des Datensatzes) abfragen und deine Löschabfrage formulieren:
PHP-Code:
/*
* Wenn ein Button gesendet wurde . . .
*/
if(isset($_POST['cmd'])){
/*
* . . . wird mit der Funktion key der Schlüssel des Buttons ausgelesen.
*/
$buttonID=key($_POST['cmd']);
/*
* Mit diesem Schlüssel kann man jetzt den Datensatz ansprechen, der zu
* diesem Button im Formular gehört bzw. den man löschen will (Als Beispiel).
*/
$vorname=$_POST['vorname'][$buttonID];
$nachname=$_POST['nachname'][$buttonID];
echo "<p>Es wurde Button mit der ID $buttonID gedrückt</p>";
echo "<p>Name: $nachname, $vorname</p>";
/*
* Lösch-Abfrage
*/
$query="delete from tabelle2 where id=$buttonID";
echo '<p>"'.$query.'"</p>';
mysql_query($query);
}
Günni
Kommentar