Maison  >  Article  >  base de données  >  Comment implémenter un bouton Supprimer dans un formulaire PHP pour supprimer des enregistrements d'une table MySQL ?

Comment implémenter un bouton Supprimer dans un formulaire PHP pour supprimer des enregistrements d'une table MySQL ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-27 21:30:30730parcourir

How to Implement a Delete Button in a PHP Form to Remove Records from a MySQL Table?

Comment intégrer un bouton Supprimer dans un formulaire PHP pour supprimer des enregistrements d'une table MySQL

Problème :

Une demande d'ajout d'une option "Supprimer" à une table HTML remplie par une table MySQL s'est avérée infructueuse. L'objectif est de créer un lien de suppression fonctionnel qui déclenche la soumission d'un formulaire et élimine la ligne correspondante de la base de données.

Instantané du code :

results.php :

<code class="php">// Fetch data from the database
$contacts = mysql_query("SELECT * FROM contacts ORDER BY ID ASC") or die(mysql_error());

// If results exist, display the table
if (mysql_num_rows($contacts) > 0) {
    // Table markup
    echo '<table id="contact-list">';

    // Table head
    echo '<thead><tr><th>Name</th><th>Email</th><th>Telephone</th><th>Address</th><th>Delete</th></tr></thead>';

    // Table body
    while ($contact = mysql_fetch_array($contacts)) {
        echo '<tr>';
        echo '<td>' . $contact['name'] . '</td>';
        echo '<td>' . $contact['email'] . '</td>';
        echo '<td>' . $contact['telephone'] . '</td>';
        echo '<td>' . $contact['address'] . '</td>';

        // Delete form
        echo '<td><form action="delete.php" method="post">';
        echo '<input type="hidden" name="name" value="">';
        echo '<input type="submit" name="submit" value="Delete">';
        echo '</form></td>';

        echo '</tr>';
    }

    // Table foot
    echo '</table>';
}</code>

delete.php:

<code class="php">// Define the deletion query
$query = "DELETE FROM contacts WHERE name={$_POST['name']} LIMIT 1";

// Execute the query
mysql_query($query);

// Display a success or failure message based on the number of affected rows
if (mysql_affected_rows() == 1) {
    echo '<strong>Contact Has Been Deleted</strong><br /><br />';
} else {
    echo '<strong>Deletion Failed</strong><br /><br />';
}</code>

Solution :

Le problème réside dans transmettre la valeur de la clé primaire (dans ce cas, le nom) au script delete.php. Pour remédier à cela, le lien de suppression doit inclure la valeur du nom soit via un champ masqué, soit en tant que paramètre d'URL.

Code mis à jour :

<code class="php">// Within the table body loop in results.php

echo '<td><form action="delete.php?name=' . $contact['name'] . '" method="post">';</code>

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