Wie kann ich mithilfe von Kontrollkästchen in PHP mehrere Zeilen aus einer MySQL-Datenbanktabelle löschen und welche häufigen Fehler sollte ich vermeiden?

Patricia Arquette
Freigeben: 2024-10-26 16:50:30
Original
615 Leute haben es durchsucht

How can I delete multiple rows from a MySQL database table using checkboxes in PHP, and what common errors should I avoid?

Löschen mehrerer Zeilen mithilfe von Kontrollkästchen in PHP

Der bereitgestellte Code zielt darauf ab, mehrere Zeilen aus einer MySQL-Datenbanktabelle zu löschen. Bei der aktuellen Implementierung tritt jedoch ein Problem auf, bei dem keine Zeilen gelöscht werden. Um dieses Problem zu beheben, sind bestimmte Änderungen am Code erforderlich.

Das erste Problem liegt darin, wie Sie die Kontrollkästchenwerte erhalten. Sie müssen die Kontrollkästchenwerte als Array behandeln, ähnlich wie:

<code class="php"><input name="checkbox[]" type="checkbox" value="<?php echo $row['link_id']; ?>"></code>
Nach dem Login kopieren

Diese Änderung ermöglicht es Ihnen, die ausgewählten Kontrollkästchen zum Löschen zu zählen und in einer Schleife zu durchlaufen.

Ein weiterer Fehler ist das Fehlen von die Datenbankverbindung bei der Abfrageausführung. Sie konnten $dbc nicht an die Funktion mysqli_query() übergeben. Die korrekte Syntax sollte lauten:

<code class="php">$result = mysqli_query($dbc, $sql);</code>
Nach dem Login kopieren

Hier ist der korrigierte Code:

<code class="php"><?php
// Retrieve data from database and prepare HTML table
$dbc = mysqli_connect('localhost', 'root', 'admin', 'sample') or die('Error connecting to MySQL server');
$query = "select * from links ORDER BY link_id";
$result = mysqli_query($dbc, $query) or die('Error querying database');

// Start form and table for displaying links and checkboxes
echo '<form name="form1" method="post" action="">';
echo '<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">';

// Header row
echo '<tr>';
echo '<td colspan="4" align="center" bgcolor="#FFFFFF"><strong>Delete multiple links</strong></td>';
echo '</tr>';

echo '<tr>';
echo '<td align="center" bgcolor="#FFFFFF">#</td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link ID</strong></td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link Name</strong></td>';
echo '<td align="center" bgcolor="#FFFFFF"><strong>Link URL</strong></td>';
echo '</tr>';

// Data rows
while ($row = mysqli_fetch_array($result)) {
    echo '<tr>';
    echo '<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" value="' . $row['link_id'] . '"></td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_id'] . '</td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_name'] . '</td>';
    echo '<td bgcolor="#FFFFFF">' . $row['link_url'] . '</td>';
    echo '</tr>';
}

// Submit button
echo '<tr>';
echo '<td colspan="4" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" value="Delete"></td>';
echo '</tr>';

// Closing tags
echo '</table>';
echo '</form>';

// Delete rows if submit button is clicked
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);
    }

    // Redirect to a confirmation or success page after deletion
    if ($result) {
        echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
}

mysqli_close($dbc);
?></code>
Nach dem Login kopieren

Diese Änderungen sollten das Problem beheben und es dem Code ermöglichen, mithilfe von Kontrollkästchen mehrere Zeilen aus Ihrer MySQL-Tabelle zu löschen .

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Kontrollkästchen in PHP mehrere Zeilen aus einer MySQL-Datenbanktabelle löschen und welche häufigen Fehler sollte ich vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!