Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP MySQL Delete-Funktion in While-Schleife

Sie müssen dem PHP-Skript mitteilen, dass Sie den Datensatz löschen möchten. Eine Lösung wäre, einen versteckten Eingang zu verwenden, der gesetzt wird, wenn Sie removeRow aufrufen, z. B.

function removeRow(el) {
    // get the table row
    var row = $(el).parents('tr:first');

    // disable the input fields for the row
    $('input', row).attr('disabled', 'disabled');

    // rename update_id to delete_id and re-enable the field
    $('input[name="update_id[]"]', row).attr('name', 'delete_id[]').removeAttr('disabled');

    // hide the row
    row.hide();
}

Diese Methode entfernt die Tabellenzeile nicht mehr aus dem DOM. Es deaktiviert jedoch die in der Zeile enthaltenen Eingabefelder und fügt eine versteckte Eingabe mit dem Namen beskrivelse_delete hinzu .

Wenn das Formular gesendet wird, kann Ihr PHP nun erkennen, welche Datensätze gelöscht werden müssen.

foreach ($_POST['delete_id'] as $deleteId) {
    $deleteId = (int)$deleteId;
    $db->query("DELETE FROM faktura_materialer WHERE id = $deleteId");
}

Update:Ich habe einen phpfiddle erstellt die einige Verbesserungen enthält, über die Sie vielleicht mehr erfahren möchten. Zu diesen Punkten gehören:

  • Unterstützung des Löschens, wenn JavaScript nicht aktiviert ist
  • Verwenden von vorbereiteten Anweisungen (bevorzugt add_slashes )
  • Escape-Ausgabe durch Verwendung von htmlspecialchars
  • Eingabe-IDs explizit definieren, um Raten zu vermeiden basierend auf einem inkrementellen Zähler