Suppression d'une ligne d'une BDD

Résolu
Bonjour, je crée mon site avec un formulaire de contact, et un espace admin' pour voir les messages postés et les supprimer. L'affichage c'est bon mais pour le bouton 'Supprimer' , cela supprime seulement la dernière ligne qui se situe dans la table. J'ai fais des recherches mais j'arrive pas a adapter la solution sur mon code. Merci de votre aide

Mon code :
PAGE: messages.php

<?php
//affichage des messages
$sql = "SELECT * FROM contact";
$req = mysql_query($sql);

while ($data = mysql_fetch_array($req)){
echo 'Message numéro: '.$data['id'].'<br>';
echo 'Nom: '.$data['nom'].'<br>';
echo 'Prénom: '.$data['prenom'].'<br>';
echo 'Tél: '.$data['tel'].'<br>';
echo 'Email: '.$data['email'].'<br>';
echo 'Message: '.$data['message'].'<br>';
?>

<!-- Bouton suppression message -->
<form method="post" action="supprimermsg.php?">
<select name="msg">
<?php
echo '<option value="'.$data['id'].'">'.$data['id'].'</option>';
?>

</select>
<input type="submit" value="Supprimer" name="supprimer"/>
<?php
echo '<br>________________________________________<br>';

}
mysql_free_result ($req);
mysql_close ();
?>
PAGE: supprimermsg.php

<?php

mysql_connect('localhost', 'root', '');
mysql_select_db('site');

$id = $_POST['msg'];

$sql = "DELETE FROM contact WHERE id = '$id'";
$req = mysql_query($sql);

header("location:messages.php");// Redirection vers la page

2 réponses

  1. Il faut que tu sortes ta balise <form> de ton while et que tu la fermes après car là si tu regardes ta source, tu dois avoir autant de balises form que de ligne récupérées via ta requête.
    0
    1. Merci, le fait que <form> soit dans le while était normal, j'avais juste oublié de la fermer apres le </select>, maintenant ça marche. Merci pour ton aide Zep3k!GnO.
      0