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!