Löschen eines Datensatzes aus der MySQL-Datenbank
Ich versuche ein PHP-script holt sich die Datensätze aus der Datenbank Holen ist in Ordnung, aber das problem ist, dass wenn ich auf DELETE BUTTON
es löscht alle Datensätze aus der Datenbank, was ich hier tun müssen, ist das löschen eines bestimmten Datensatzes (der Eintrag auf der Zeile), wie kann ich das tun?
Hier ist mein code:
<table width="99%" border="0">
<tr>
<td align="center">ID</td>
<td align="center">Username</td>
<td align="center">EDIT</td>
<td align="center">DELETE</td>
</tr>
<?
while ($fetch=mysql_fetch_array($q))
{
?>
<tr>
<td align="center"><? echo $fetch['useId']; ?></td>
<td align="center"><? echo $fetch['userUserName']; ?></td>
<td align="center"><? echo $fetch['useId']; ?></td>
<td align="center"> <input name="delete" type="submit" value="DELETE " onclick="<? mysql_query("DELETE FROM user WHERE useId = ". $fetch['useId'] ."") ?> "/></td>
</tr>
<? } ?>
</table>
- Mir scheint, es löscht alle Datensätze, wenn Sie öffnen Sie einfach die Seite. Sie sind die Vermischung von javascript und php.
- Nein ist es nicht, denn ich habe onClick , was bedeutet, dass ich auf eine Handlung . danke 🙂
- Ja, es funktioniert, weil das php verarbeitet wird, bevor die Seite an den browser gesendet wird.
- naja ich versuchte es und aktualisiert die Seite viele Male , wird der Datensatz bleibt , wenn ich nur auf die Schaltfläche löschen.
- ops , du hast Recht ! , sorry dafür
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jeroen angemerkt in den Kommentaren, bist du die Vermischung der PHP und JS. Sie können nicht ausgeführt, PHP auf einer Seite durch den Aufruf einer JS-Funktion seit der PHP-geparst wird, bevor die Seite angezeigt wird. Was Sie tun müssen, ist Ihr onClick-Ereignis zu post-Daten zurück auf die Seite, so dass es lädt und ruft den code zum löschen der Zeile:
Was ich getan habe, ist hier modifiziert Ihren code hinzufügen, um einen Scheck für die POST-Variablen useId, wenn die Seite geladen wird. Diese existieren wird, sobald die Seite wurde verfasst von der form. (Ich nehme an du hast mit method="POST" im Formular, wenn Sie BEKOMMEN dann entsprechend aktualisieren). Beachten Sie, dass die Abfrage löschen, sollten wirklich ausgeführt werden, bevor Sie rurn Ihre $q Abfrage, so dass Sie nicht sehen, die gelöschten Personen in Ihrer Liste, nachdem die Seite aktualisiert wurde.
Ich bin auch zu prüfen, dass useId numerisch ist (vorausgesetzt, Ihre Benutzer-IDs numerisch sind) als Sicherheit stellen Sie sicher, dass jemand nicht senden gefälschte Daten, um Ihre Anfrage. Schließlich habe ich noch das hidden-Feld auf Ihrem Formular mit der user-ID.
EDIT: Vergessen, auch angeben, dass jede Zeile in der Tabelle muss ein separates Formular für diese, um richtig zu arbeiten, da Sie möchten, dass nur die Benutzer-id für diese Zeile zu senden als die useID Wert. Oder alternativ können Sie auch über JS zu bestimmen, welche Zeile Sie löschen und tack auf die userID als GET-var.
userId
. Check meine Antwort, müssen Sie ein Formular für jeden Eintrag der für diese Konfiguration zu arbeiten.Php verarbeitet wird, bevor /während die Ausgabe an den browser gesendet wird, so löschen Sie alle Ihre Unterlagen, während Ihr Seite aufgebaut wird.
Was Sie tun müssen, zu kurz ist (dies ist nur ein Weg, es zu lösen...):