In PHP-Anwendungen ist der Betrieb von Datenbanken eine häufige Aufgabe. Es gibt viele Situationen, in denen wir mehrere Datenzeilen in der Datenbank löschen müssen. Dies ist eine Stapellöschung. In diesem Artikel zeige ich Ihnen, wie Sie Massenlöschvorgänge in PHP implementieren.
Zuerst müssen wir eine Verbindung mit der Datenbank herstellen. Verwenden Sie die folgende Funktion:
$conn = mysqli_connect("localhost", "my_user", "my_password", "my_db");
Dadurch wird eine Verbindung zur Datenbank mit dem Namen „my_db“ hergestellt. Sie müssen ihn in Ihren eigenen Datenbanknamen ändern und den richtigen Benutzernamen und das richtige Passwort angeben.
Vor dem Batch-Löschen müssen wir die vom Benutzer ausgewählten Datenzeilen abrufen. Für diesen Vorgang benötigen wir ein HTML-Formular und etwas JavaScript-Code.
Hier ist ein Beispiel-HTML-Formular:
<form method="post" id="deleteForm"> <table> <thead> <tr> <th>ID</th> <th>Name</th> <th>Delete</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>John</td> <td><input type="checkbox" name="ids[]" value="1"></td> </tr> <tr> <td>2</td> <td>Jane</td> <td><input type="checkbox" name="ids[]" value="2"></td> </tr> <tr> <td>3</td> <td>Bob</td> <td><input type="checkbox" name="ids[]" value="3"></td> </tr> </tbody> </table> <button type="submit">Delete</button> </form>
Dieses Formular verfügt über eine Spalte mit Kontrollkästchen, jedes mit einem eindeutigen Wert (Zeilen-ID). Wenn der Benutzer Datenzeilen zum Löschen auswählt, werden die IDs dieser Zeilen einem Formularelement mit dem Namen „ids[]“ hinzugefügt. Der Name ist ein Array, da wir mehrere Werte auswählen werden.
Jetzt müssen wir etwas JavaScript-Code schreiben, um den vom Benutzer ausgewählten Wert abzurufen und ihn im Hintergrund an das PHP-Skript zu übergeben.
document.getElementById('deleteForm').addEventListener('submit', function(event) { event.preventDefault(); var selected = document.getElementsByName('ids[]'); var ids = []; for (var i = 0; i < selected.length; i++) { if (selected[i].checked) { ids.push(selected[i].value); } } // Send selected ids to PHP script for processing var request = new XMLHttpRequest(); request.open('POST', 'delete.php', true); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); request.onload = function() { if (request.status >= 200 && request.status < 400) { // Success console.log(request.responseText); } else { // Error console.log('Error'); } }; request.onerror = function() { // Connection error console.log('Connection Error'); }; request.send('ids=' + JSON.stringify(ids)); });
Dieser Code richtet einen „Senden“-Ereignis-Listener ein, der ausgeführt wird, wenn der Benutzer auf die Schaltfläche „Löschen“ klickt. Zunächst werden alle Kontrollkästchen mit dem Namen „ids[]“ abgerufen. Als nächstes wird ein Array erstellt, das die vom Benutzer ausgewählten Zeilen-IDs enthält. Dann verwendet es AJAX, um das Array von Bezeichnern an ein PHP-Skript namens „delete.php“ zu senden. Wenn das Skript schließlich eine Antwort zurückgibt, gibt es den Antwortinhalt auf der Konsole aus.
Jetzt müssen wir PHP-Code schreiben, um die Anfrage zu bearbeiten. In unserem obigen JavaScript-Code senden wir das Array von Bezeichnern als JSON-String an das Skript. In PHP können wir einen JSON-String mit dem folgenden Code in ein PHP-Array dekodieren:
$ids = json_decode($_POST['ids']);
Als nächstes müssen wir eine Schleife verwenden, um jede Datenzeile zu löschen:
foreach ($ids as $id) { $sql = "DELETE FROM users WHERE id=$id"; mysqli_query($conn, $sql); }
Das obige ist der detaillierte Inhalt vonBatch-Löschen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!