Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lösche ich mehrere Datenbankzeilen ordnungsgemäß mithilfe von Kontrollkästchen in PHP?

Wie lösche ich mehrere Datenbankzeilen ordnungsgemäß mithilfe von Kontrollkästchen in PHP?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 19:42:02211Durchsuche

How to Properly Delete Multiple Database Rows Using Checkboxes in PHP?

Gemeinsames Löschen von Datenbankzeilen mit Kontrollkästchen in PHP

Konfrontiert mit der Aufgabe, mehrere Zeilen aus Ihrer MySQL-Hochburg zu löschen, haben Sie nach Erleuchtung in den Tiefen der Programmierweisheit gesucht . Während Sie mit dieser Datenbereinigung beginnen, sind Sie scheinbar auf eine unüberwindbare Hürde gestoßen.

Der von Ihnen erstellte Code erfüllt trotz seiner tapferen Absicht seinen beabsichtigten Zweck der Zeilenvernichtung nicht. Entschlossen, dieses Hindernis zu überwinden, suchen Sie nach Anleitung, indem Sie Ihren Code der angesehenen Coding-Community präsentieren:

<code class="html">// PHP witchcraft to connect to MySQL
$dbc = mysqli_connect('localhost', 'root', 'admin', 'sample') or die('MySQL is out to get you!');
$query = "select * from links ORDER BY link_id";
$result = mysqli_query($dbc, $query) or die('Whoops! Query went awry!');
$count = mysqli_num_rows($result);</code>
<code class="html">// Assemble your army of checkboxes
while ($row = mysqli_fetch_array($result)) {
    echo <<<HTML
<tr>
    <td><input type="checkbox" name="checkbox[]" value="$row[link_id]"></td>
    <td>$row[link_id]</td>
    <td>$row[link_name]</td>
    <td>$row[link_url]</td>
</tr>
HTML;
}</code>
<code class="html">// The arsenal of deletion awaits your command
if (isset($_POST['delete'])) {
    // Retrieve your checked victims
    $checkbox = $_POST['checkbox'];

    // Summon the wrath of deletion upon each victim
    foreach ($checkbox as $del_id) {
        $sql = "DELETE FROM links WHERE link_id='$del_id'";
        // Unleash the purging power!
        $result = mysqli_query($dbc, $sql);
    }

    // If successful, redirect to the crime scene
    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}</code>

The Sage's Solution

Leider kommt Ihr Code aufgrund von ins Stocken ein paar kritische Versäumnisse:

  1. Array oder Single: Ihren Kontrollkästchen-Eingabe-Tags fehlt das Suffix [], um sie als Array zu behandeln. Ohne sie erkennt PHP Mehrfachauswahlen nicht richtig. Verwenden Sie name="checkbox[]".
  2. Datenbankbeschwörung: In Ihrer Abfrageausführungszeile fehlte die Verbindungsvariable. Es sollte $result = mysqli_query($dbc, $sql); lauten.

Mit diesen Korrekturen soll Ihr Code Zeilen wie ein digitaler Zauberer verbannen. Begeben Sie sich mit neuem Selbstvertrauen auf Ihre Datenbereinigung!

Das obige ist der detaillierte Inhalt vonWie lösche ich mehrere Datenbankzeilen ordnungsgemäß mithilfe von Kontrollkästchen 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