Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh memadamkan berbilang baris daripada jadual pangkalan data MySQL menggunakan kotak semak dalam PHP, dan apakah ralat biasa yang harus saya elakkan?

Bagaimanakah saya boleh memadamkan berbilang baris daripada jadual pangkalan data MySQL menggunakan kotak semak dalam PHP, dan apakah ralat biasa yang harus saya elakkan?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 16:50:30616semak imbas

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

Pemadaman Berbilang Baris Menggunakan Kotak Semak dalam PHP

Kod yang disediakan bertujuan untuk memadamkan berbilang baris daripada jadual pangkalan data MySQL. Walau bagaimanapun, pelaksanaan semasa menghadapi masalah di mana tiada baris dipadamkan. Untuk menangani masalah ini, pengubahsuaian tertentu pada kod diperlukan.

Isu pertama terletak pada cara anda menerima nilai kotak pilihan. Anda mesti menganggap nilai kotak semak sebagai tatasusunan, serupa dengan:

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

Perubahan ini akan membolehkan anda mengira dan menggelung melalui kotak pilihan yang dipilih untuk pemadaman.

Ralat lain ialah ketiadaan sambungan pangkalan data dalam pelaksanaan pertanyaan. Anda gagal menghantar $dbc ke mysqli_query() fungsi. Sintaks yang betul hendaklah:

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

Berikut ialah kod yang diperbetulkan:

<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>

Pengubahsuaian ini harus menangani isu dan membolehkan kod memadam berbilang baris daripada jadual MySQL anda menggunakan kotak pilihan .

Atas ialah kandungan terperinci Bagaimanakah saya boleh memadamkan berbilang baris daripada jadual pangkalan data MySQL menggunakan kotak semak dalam PHP, dan apakah ralat biasa yang harus saya elakkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn