Heim >Datenbank >MySQL-Tutorial >Wie behebe ich Probleme mit PHP-Checkbox-Arrays und Datenbankverbindungen beim Löschen mehrerer Datenbankzeilen?

Wie behebe ich Probleme mit PHP-Checkbox-Arrays und Datenbankverbindungen beim Löschen mehrerer Datenbankzeilen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-28 08:53:13381Durchsuche

How to Fix PHP Checkbox Array and Database Connection Issues When Deleting Multiple Database Rows?

Verwenden von PHP zum Löschen mehrerer Zeilen basierend auf der Auswahl des Kontrollkästchens

Bei der Arbeit mit einer relationalen Datenbank ist es häufig erforderlich, mehrere Zeilen gleichzeitig zu löschen. Um dies zu erreichen, können Sie Kontrollkästchen in einem Formular verwenden, um die zu entfernenden Zeilen auszuwählen.

In diesem Leitfaden gehen wir auf ein häufiges Problem ein, das beim Löschen mehrerer Zeilen mithilfe von PHP und Kontrollkästchen auftritt. Wir geben einen kurzen Überblick über das Problem und seine Lösung, basierend auf den Informationen in der gegebenen Problemstellung, ohne den Titel „Mehrere Zeilen durch Auswahl von Kontrollkästchen mit PHP löschen“ zu wiederholen.

Das Problem

Sie haben eine PHP-Datei erstellt, die es Benutzern ermöglicht, bestimmte Zeilen aus einer MySQL-Datenbanktabelle auszuwählen und zu löschen. Trotz der Markierung der Kontrollkästchen und der Formularübermittlung bleiben die Zeilen jedoch intakt. Dies deutet darauf hin, dass das Problem vom PHP-Code herrührt.

Die Lösung

Lassen Sie uns den bereitgestellten PHP-Code untersuchen und den potenziellen Fehler identifizieren:

  1. Checkbox-Array: Das PHP-Skript behandelte „Checkbox“ zunächst als einzelnes Element. Stattdessen sollte es als Array behandelt werden, um die ausgewählten Kontrollkästchen korrekt zu erfassen. Um dies zu beheben, ersetzen Sie den folgenden Code:
<input name="checkbox" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">

durch:

<input name="checkbox[]" type="checkbox" value="
                    <?php echo $row['link_id']; ?>">
  1. Abfrageausführung: Der PHP-Code wurde nicht bestanden die Datenbankverbindung zur Abfrage, die die Zeilen löscht. Dieses Versäumnis führte dazu, dass die Abfrage nicht ausgeführt werden konnte. Um dies zu korrigieren, fügen Sie die folgende Zeile hinzu, bevor Sie die Abfrage ausführen:
$result = mysqli_query($dbc, $sql);

wobei „$dbc“ die Datenbankverbindung darstellt.

Implementierung

Mit diesen Nach den Anpassungen sollte Ihr PHP-Skript nun korrekt die ausgewählten Zeilen löschen, wenn auf die Schaltfläche „Löschen“ geklickt wird. Hier ist der aktualisierte PHP-Code, der dies erledigt:

if (isset($_POST['delete'])) {
    $checkbox = $_POST['checkbox'];

    for ($i = 0; $i < count($checkbox); $i++) {
        $del_id = $checkbox[$i];
        $sql = "DELETE FROM links WHERE link_id='$del_id'";
        $result = mysqli_query($dbc, $sql);
    }

    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}

Indem Sie diese Schritte befolgen, können Sie basierend auf der Benutzerauswahl mithilfe von Kontrollkästchen und PHP erfolgreich mehrere Zeilen aus Ihrer Datenbanktabelle löschen.

Das obige ist der detaillierte Inhalt vonWie behebe ich Probleme mit PHP-Checkbox-Arrays und Datenbankverbindungen beim Löschen mehrerer Datenbankzeilen?. 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