Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-25 19:42:02
original
267 Les gens l'ont consulté

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>
Copier après la connexion
<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>
Copier après la connexion
<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>
Copier après la connexion

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal