Suppression par case à cocher

programmeur php Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   -  
 ReDLoG -
Bonjour,
je veux faire une suppression des informations d'un ensemble de personnes d'une base de données à l'aide d'un case à cocher.
Quand je coche la case correspondante à la personne à supprimer qui porte son id dans la bdd, il écrit "suppression réussie" mais la suppression ne se fait pas dans la base de données.

voici le code
page de suppression (page1):
<?php

echo'<a href="deconnection.php">Deconnection</a> ';
echo'<a href="changer.php">changer mot de passe</a>';
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "cripe" ) ;

//création de la requête SQL:


echo'<table>
<TR><th> </th><th> Nom</th><th> Prenom</th></TR>';

$requete= mysql_query("SELECT * FROM cripe.abonne");



while($data=mysql_fetch_object($requete)) {

/*<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
mysql_free_result($result);
?>*/

echo '<form action="receptionsuppression.php" method="GET"><tr><td><input type="checkbox" name="monchamp[]" value="',$data->id,'"></td><td>',$data->nom,'</td><td>',$data->prenom,'</td></tr>';}
mysql_free_result($requete);

echo'<tr><td><input type="submit" value="Supprimer" align="center"></td><td><input type="reset" value="Annuler" align="center"></td></tr>';
echo'</form>';
echo'</table>';

?>

page receptionsuppression.php (page2)
<?php
if (isset($_GET["monchamp"]))
{

//il faut reçevoir un tableau de valeurs
$lis=$_GET["monchamp"];
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "cripe" ) ;

//création de la requête SQL:
for ($i = 0, $c = count($lis); $i < $c; $i++)
{
$requete="DELETE FROM 'cripe'.'abonne' WHERE 'abonne'.'id' = '$lis[$i]'";
}
if($requete){
echo'suppression réussite';
}
else
{
echo'suppression n\'est pas réussie';
}

}
else
{
echo'vous devez choisir';
}
?>

1 réponse

ReDLoG
 
Bonsoir,
Ta requête comporte des erreurs de syntaxe et tu ne lances pas la requête sur la table, il faut donc modifier ton script :
for ($i = 0; $i < count($lis); $i++) {
	$requete="DELETE FROM cripe.abonne WHERE abonne.id='".$lis[$i]."'";
	mysql_query($requete) or die (mysql_error());
}
0