Maison > développement back-end > tutoriel php > Comment supprimer plusieurs lignes à l'aide de cases à cocher en PHP : résoudre les erreurs courantes et garantir une exécution réussie ?

Comment supprimer plusieurs lignes à l'aide de cases à cocher en PHP : résoudre les erreurs courantes et garantir une exécution réussie ?

Patricia Arquette
Libérer: 2024-10-26 04:00:27
original
564 Les gens l'ont consulté

How to Delete Multiple Rows Using Checkboxes in PHP: Addressing Common Errors and Ensuring Successful Execution?

Supprimer plusieurs lignes en sélectionnant des cases à cocher à l'aide de PHP : dépannage des erreurs courantes

Lors de la suppression de plusieurs lignes d'une table de base de données MySQL à l'aide de PHP, la sélection de liens à l'aide de cases à cocher nécessite un codage minutieux pour garantir une exécution réussie. Cet extrait de code offre une solution à un problème courant :

<code class="php"><html>
  <head>
    <title>Links Page</title>
  </head>
  <body>
    <h2>Choose and delete selected links.</h2> 
    <?php
      $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');
      $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); // Pass the database connection here
        }
        // if successful redirect to view_links.php 
        if($result){
          echo '<meta http-equiv="refresh" content="0;URL=view_links.php">';
        }
      }
      mysqli_close($dbc);
    ?>
  </body>
</html></code>
Copier après la connexion

Le correctif :

  1. Traitez le nom de la case à cocher comme un tableau : name="checkbox []" au lieu de name="checkbox".
  2. Transmettez la connexion à la base de données $dbc à chaque appel mysqli_query, comme indiqué dans $result = mysqli_query($dbc, $sql);.

Avec ces modifications, le code devrait correctement supprimer plusieurs lignes en fonction des cases à cocher sélectionnées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal