[PHP] Supprimer un enregistrement mysql

Fermé
Papymucho - 20 juin 2007 à 16:47
 papillon - 6 avril 2009 à 14:18
Je n'arrive pas à supprimer un enregistrement dans une table mysql à partir d'un menu déroulant dynamique, je ne suis pas sur mais le problème se situerais dans la récupération de l'id?
Quelqu'un pourrais t'il m'expliquer? quand je valide la suppression, j'ai une erreur "Exécution de la requête impossible" donc j'ai bien mon menu déroulant dynamique, mais c'est a la validation pour l'effacement que ca buche, je dois avoir un problème dans la syntaxe :
$rq = "DELETE * FROM Stages ('', $stage', '')";
$result = mysql_query($rq)

Le code du formulaire :


<?php

include("Connexion.php");
$rq = "SELECT DISTINCT * FROM Stages ORDER BY Stage";
$select_stage = mysql_query($rq)
or die ("Exécution de la requête impossible");

$étiquettes = array ("efface" => "Effacer un stage");


echo "<p><hr>


<form action='Effacer_Stage.php' method='post'>
<center><table width='95%' border='0' cellspacing='0' cellpading='2'>
<tr><td align='right'><b>{$étiquettes['efface']} :</br></td>
<td><select name='stage'>\n";
while ($choix_stage = mysql_fetch_array($select_stage))
{
extract($choix_stage);
if ($Stage<>"")
echo "<option value='$Stage'>$Stage\n";
}
echo "</select>\n
</table><p><hr><p>
<p><input type='submit' name='validation' value='Validez'></p><br>
</form>\n
</center>";

?>


Et le code du traitement :


<?php

include("Connexion.php");


$rq = "DELETE * FROM Stages ('', $stage', '')";
$result = mysql_query($rq)
or die ("Exécution de la requête impossible.");
echo "<b>Stage bien rajouté dans la base de données.</b><br>";

mysql_close();

?>
A voir également:

19 réponses

power11 Messages postés 19 Date d'inscription mardi 1 avril 2008 Statut Membre Dernière intervention 29 mai 2008
13 mai 2008 à 12:29
slt a tous celà faire des jours que je cherches une solution a mon probleme et je suis sur que j'aurais une reponse concrète ojoud'hui c'est concernant la suppression d'un enregistrement dans une base de donnée mysql via un formulaire.Je m'explique, j'ai un formulaire que je nomme desinscrire.php qui contient un login et un mot de passe.C'est ainsi que pour l'utilisateur qui decide de supprimer son compte sur le site, qu'il remplisse le formulaire et l'envoie automatiquement son compte sera supprimer.
merci pour votre aide je l'en faire mais cela ne marche pas. voici le code

<?
if(isset($_POST['login'])and($_POST['motpasse']))
{
$login=$_POST['login'];
$motpasse=$_POST['motpasse'];
$host="localhost";
$user="root";
$password="";
$bdd="system";

if (mysql_connect($host,$user,$password))
{
//echo "connexion reussie";
}
else
{
//echo("erreur de connexion");
}
mysql_select_db($bdd) /*or die ('erreure de connexion à la base de donnée')*/;


$select="select * from inscription where login='$login' AND motpasse='$motpasse'";
$rep= mysql_query($select) or die ('erreure insert!<br>'.$select.'<br>'. mysql_error());
if ($valider=mysql_fetch_array($rep))
{
$vallogin=$valider['login'];
$valmotpasse=$valider['motpasse'];
}

if (isset $vallogin and isset $valmotpasse)

$requete="delete * from inscription where nom='$nom'AND prenom='$prenom'AND login='$login'AND motpasse='$motpasse'AND confirmermotpasse='$confirmermotpasse'AND mail='$mail'AND sexe='$sexe'AND nationnalite='$nationnalite'AND jours='$jours'AND mois='$mois'AND annee='$annee'AND pays='$pays'";

$reponse=mysql_query($requete) or die ('erreure insert!<br>'.$requete.'<br>'.mysql_error());


{
echo '<script language=javascript> alert ("vous venez de supprimer votre compte ");</script>';
}
else
{
echo '<script language=javascript> alert ("erreure de suppression");</script>';

}
}
?>
merci pour votre aide je suis a l 'ecoute
4
Torkass Messages postés 166 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 21 janvier 2016 95
13 mai 2008 à 13:51
Je crois que tu te compliques la vie ! ^^

Ne serait-il pas plus simple d'ajouter un bouton ou une case à cocher dans le profil du membre et visible uniquement par lui ? Il pourrait facilement supprimer son compte ainsi, via son id.
-1
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
13 mai 2008 à 13:54
Bonjour,

tu utiles des variables pour ta clause WHERE qui n'éxistent pas:


if ($valider=mysql_fetch_array($rep))
{
$vallogin=$valider['login'];
$valmotpasse=$valider['motpasse'];
}

if (isset $vallogin and isset $valmotpasse)

$requete="delete * from inscription where nom='$nom'AND prenom='$prenom'AND login='$login'AND motpasse='$motpasse'AND confirmermotpasse='$confirmermotpasse'AND mail='$mail'AND sexe='$sexe'AND nationnalite='$nationnalite'AND jours='$jours'AND mois='$mois'AND annee='$annee'AND pays='$pays'";



essayes plutot:


if (isset $vallogin and isset $valmotpasse)

$requete="DELETE * FROM inscription WHERE login='$vallogin' AND motpasse='$valmotpasse'";



ça deletera l'enr correspondant à celui choisi dans le formualire.
-1