Heim  >  Artikel  >  Backend-Entwicklung  >  Batch-Löschen in PHP

Batch-Löschen in PHP

PHPz
PHPzOriginal
2023-05-07 12:02:07598Durchsuche

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.

  1. Mit der Datenbank verbinden

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.

  1. Ausgewählte Datenzeilen abrufen

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.

  1. Löschanfragen bearbeiten

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);
}
#🎜🎜 #Diese Schleife durchläuft jede ID und verwendet eine SQL-Abfrage, um die entsprechende Zeile aus der Tabelle „Benutzer“ zu löschen.

    Vollständiges Codebeispiel
Hier ist das vollständige PHP-Skript:

In diesem Skript stellen wir zuerst eine Verbindung her in die Datenbank übertragen und dann das Array von Bezeichnern in ein PHP-Array dekodieren. Als nächstes verwenden wir eine Schleife, um jede Datenzeile zu löschen. Abschließend geben wir eine Erfolgsmeldung aus.

    Zusammenfassung
In diesem Artikel haben wir gelernt, wie man Stapellöschvorgänge in PHP implementiert. Wir verwenden ein HTML-Formular und JavaScript-Code, um die vom Benutzer ausgewählte Datenzeile abzurufen, und verwenden dann PHP-Code, um die Anfrage zu verarbeiten. Das Massenlöschen ist oft eine notwendige Funktion, und in PHP-Anwendungen können Sie es mit den von uns behandelten Techniken leicht implementieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn