Maison  >  Article  >  développement back-end  >  Comment supprimer correctement plusieurs lignes de base de données à l’aide de cases à cocher en PHP ?

Comment supprimer correctement plusieurs lignes de base de données à l’aide de cases à cocher en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-25 19:42:02134parcourir

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

Suppression collaborative de lignes de base de données avec des cases à cocher en PHP

Confronté à la tâche de purger plusieurs lignes de votre bastion MySQL, vous avez cherché l'illumination dans les profondeurs de la sagesse du codage . En vous lançant dans cette entreprise de nettoyage des données, vous vous êtes apparemment heurté à un obstacle insurmontable.

Le code que vous avez créé, bien que vaillant dans son intention, ne parvient pas à exécuter son objectif d'annihilation de lignes. Déterminé à surmonter cet obstacle, vous demandez conseil en présentant votre code à la communauté estimée des codeurs :

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

La solution du Sage

Hélas, votre code échoue à cause de quelques oublis critiques :

  1. Array ou Single : Les balises d'entrée de votre case à cocher n'ont pas le suffixe [] pour les traiter comme un tableau. Sans cela, PHP ne reconnaîtra pas correctement plusieurs sélections. Utilisez name="checkbox[]".
  2. Invocation de base de données : Il manquait la variable de connexion dans la ligne d'exécution de votre requête. Cela devrait être $result = mysqli_query($dbc, $sql);.

Avec ces rectifications, votre code bannira les lignes comme un sorcier numérique. Lancez-vous dans votre quête de nettoyage des données avec une confiance renouvelée !

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