Suppression à l'aide de case à cocher

Résolu
programmeur php Messages postés 46 Statut Membre -  
programmeur php Messages postés 46 Statut Membre -
Bonjour,



je veux faire une suppression des données d'une personne dans une base de données en cochant un case à cocher qui porte comme valeur l'id de la personne et qui se trouve dans un page appelé suppression.php, quand je clique sur le bouton envoyer il écrit "suppression réussie",mais la suppression ne se fait pas dans la base de données.

voici le code:
page suppression.php
<?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

<?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';
}
?>

4 réponses

djflexlive Messages postés 577 Statut Membre 95
 
Dans ta page receptionsuppression.php , que donne un echo $lis ?

Conseil aussi, remplaces $lis=$_GET["monchamp"]; par $lis=intval($_GET["monchamp"]);

Ensuite tu n'a qu'un id à deleter ? Qu'une seule entrée dans ta bd à supprimer ?

Pourquoi utilises tu une boucles dans ce cas ? De plus, tu as ceci :
$requete="DELETE FROM 'cripe'.'abonne' WHERE 'abonne'.'id' = '$lis[$i]'";

Mais où est exécuté ta requete ? ( mysql_query($requete); ) ?
0
ReDLoG
 
@djflexlive
Bonsoir,
Te fatigues pas, jette un oeil ici et tu comprendras très vite qu'il ne faut pas attendre de réponse à tes questions :
forum "Base de données" du 18/05/2012 => http://www.commentcamarche.net/forum/affich-25201377-suppression-par-case-a-cocher (0 réponses)
forum "Base de données" du 14/05/2012 => http://www.commentcamarche.net/forum/affich-25172344-suppression-par-case-a-cocher (1 réponse)
0
programmeur php Messages postés 46 Statut Membre
 
j'ai ajouté une ligne de code après la requête dans la page receptionsuppression.php
voici le code
<?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]'";
$sql = mysql_query($requete, $cnx) or die( mysql_error() ) ;
}
if($requete){
echo'suppression réussite';
}
else
{
echo'suppression n\'est pas réussie';
}

}
else
{
echo'vous devez choisir';
}
?>
0
txiki Messages postés 6819 Statut Contributeur 523
 
Salut à tous,
T'es sur pour ça ????
$result = mysql_query("select * from mytable"); 

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
0
programmeur php Messages postés 46 Statut Membre
 
bonjour

chez moi elle est marché, mais avec la syntaxe suivante:
$result = mysql_query("select * from mabase.mytable");
0