Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memadam Berbilang Baris Dengan Betul Menggunakan Kotak Semak dalam PHP?

Bagaimana untuk Memadam Berbilang Baris Dengan Betul Menggunakan Kotak Semak dalam PHP?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 07:23:02421semak imbas

How to Correctly Delete Multiple Rows Using Checkboxes in PHP?

Menggunakan PHP untuk Memadam Berbilang Baris yang Dipilih oleh Kotak Pilihan

Memadam berbilang baris daripada pangkalan data berdasarkan pemilihan pengguna adalah tugas biasa dalam pembangunan web . Untuk mencapai ini menggunakan kotak pilihan dalam PHP, langkah tertentu mesti diikuti.

Analisis Kod

Kod yang disediakan, semasa cuba memadamkan berbilang baris berdasarkan pemilihan kotak pilihan, mengandungi beberapa ralat:

  • Nama input kotak pilihan tidak dianggap sebagai tatasusunan, yang menghalang gelung yang betul untuk pemadaman.
  • Tiada sambungan pangkalan data dihantar kepada pertanyaan menggunakan mysqli_query.

Penyelesaian

Untuk menyelesaikan isu ini dan memastikan pemadaman baris berjaya, pelarasan berikut perlu dibuat:

Nama Kotak Semak Berasaskan Tatasusunan

Nama input kotak semak hendaklah dianggap sebagai tatasusunan untuk memudahkan gelung untuk pemadaman. Ini boleh dicapai dengan menambahkan [] pada nama kotak semak:

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

Sambungan Pangkalan Data dalam Pertanyaan

Sambungan pangkalan data ($dbc) hendaklah diluluskan sebagai parameter kepada pertanyaan menggunakan mysqli_query:

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

Skrip Contoh

Skrip yang diperbetulkan di bawah menggabungkan perubahan ini dan menunjukkan kefungsian:

<code class="php"><?php
  // Database connection
  $dbc = mysqli_connect('localhost', 'root', 'admin', 'sample') or die('Error connecting to MySQL server');

  // Query to retrieve records
  $query = "select * from links ORDER BY link_id";
  $result = mysqli_query($dbc, $query) or die('Error querying database');

  // Count records
  $count = mysqli_num_rows($result);
?>

<table width="400" border="0" cellspacing="1" cellpadding="0">
  <tr>
    <td>
      <form name="form1" method="post" action="">
        <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
          <tr>
            <td bgcolor="#FFFFFF"> </td>
            <td colspan="3" bgcolor="#FFFFFF">
              <strong>Delete multiple links</strong>
            </td>
          </tr>
          <tr>
            <td align="center" bgcolor="#FFFFFF">#</td>
            <td align="center" bgcolor="#FFFFFF">
              <strong>Link ID</strong>
            </td>
            <td align="center" bgcolor="#FFFFFF">
              <strong>Link Name</strong>
            </td>
            <td align="center" bgcolor="#FFFFFF">
              <strong>Link URL</strong>
            </td>
          </tr> 

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

          <tr>
            <td colspan="4" align="center" bgcolor="#FFFFFF">
              <input name="delete" type="submit" value="Delete">
            </td>
          </tr>
        </table>
      </form>
    </td>
  </tr>
</table>    

<?php
  // Check if delete button active, start this
  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 successful, redirect to view_links.php
    if ($result) {
      echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
    }
  }

  mysqli_close($dbc);
?></code>

Dengan membuat pembetulan ini, skrip akan memadamkan berbilang baris secara berkesan daripada jadual yang ditentukan berdasarkan pilihan kotak semak pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Memadam Berbilang Baris Dengan Betul Menggunakan Kotak Semak dalam PHP?. 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