PB pour récupérer $id MySQL en PHP

jleyaoua Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
 Jean-Marie -
Bonjour,

j'essai de mettre en place un bouton qui supprime la ligne d'un tableau résultant d'une Base de données. En cliquant sur le bouton, c'est ce fichier qui s'execute. Le Pb est qu'il ne reconnait pas l'id_location et donc la supression ne marche pas. Qqn aurait-il une solution? Merci.

<?php

$db = mysql_connect('localhost', 'lnce', 'ceCIT');
mysql_select_db('ln_ce_gestion',$db);

$sql = "DELETE FROM location_vtt WHERE id_location=".$_POST['id_location']."";

if (mysql_query($sql) ==0) {
echo"<p>La location n° ".$id_location." a été supprimée.";
} else {
echo "<p>Problème lors de l'exécution de l'ordre ".$sql;
}

mysql_close();

?>

10 réponses

Virtuaklem Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   66
 
salut,

Euh tu l'execute ou ta requete ? car la tu verifie juste si il y a quelque chose mais en aucun cas tu n'execute le delete.

Virtuaklem
pas si dur l'informatique
0
Jean-Marie
 
Salut,

Merci. Désolé j'ai pas compris ta question. En fait quand je remplace '$id_location' par '8' par exemple, le DELETE fonctionne et supprime la ligne. Ce que j'arrive pas à implémenter c'est récuperer le bon numéro. Actuellement il récupère rien . Je sais pas si j'explique bien mon pb.

Jm
0
ric
 
Bonsoir
Essaie
if (mysql_query($sql)) {
....
}
0
Jean-Marie
 
Merci, j'essai ca demain matin dès que j'arrive au boulot ... en espérant que ca marchera car mon stage se termine vendredi soir. Merci. Je te tiens au courant . A+. Bonne soirée. Jm
0
Virtuaklem Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   66
 
En gros, tu fais une requete du genre :

Si il y a ca
tu affiche cela
sinon
tu affiche cela

alors que tu devrais plutot faire une requete du style :

Si ca correspond
tu supprime la ligne et tu affiche cela
sinon
tu affiche cela.

J'espere que cela va mieux t'aider ;)

Virtuaklem
pas si dur l'informatique
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ric
 
Bonjour
Le test que je t'avais proposé ne vérifiait que la validité de la requête (qu'il y ait eu suppression ou pas).
$sql = "DELETE FROM location_vtt WHERE id_location=".$_POST['id_location'].""; 

echo $sql . "<br>\n";   // pour vérifier si ta requête contient bien ce que tu attends

$resultat = mysql_query($sql) or die("requete invalide"); 
$nb=mysql_num_rows($resultat); 

if ($nb>0) { 
echo"<p>La ou les location(s) n° ".$id_location." a été supprimée."; 
} else { 
echo "<p>Rien n'a ete supprime"; 
} 

mysql_close(); 
0
ric
 
(suite du message précédent envoyé trop vite)
Essaie le code ci-dessus qui est plus complet.
0
Jean-Marie
 
Merci merci pour les codes commentés mais ca marche tjrs pas: Voila la réponse: "DELETE FROM location_vtt WHERE id_location=
requete invalide".

Je ne sais pas comment dire de choper l'id_location correspondant à la ligne ou se trouve la poubelle (renvoyant vers le fichier supp.php ci-dessus).

Merci quand même :)

Jm
0
Virtuaklem Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   66
 
Regarde dans mon profil, tu as mon adresse mail envoi moi juste ton script avec ton bouton et ton script delete, sans les d'acces a ta bdd, je vais essayer de voir ce qui ne colle pas ;)

Virtuaklem
pas si dur l'informatique
0
ric
 
Bonjour
Voila la réponse: "DELETE FROM location_vtt WHERE id_location= 
requete invalide".
Tu as maintenant une réponse plus précise, il n'y a rien dans $_POST['id_location']
Essaie aussi
$sql = "DELETE FROM location_vtt WHERE id_location=$_POST['id_location']";
si $_POST['id_location'] est numérique ou
$sql = "DELETE FROM location_vtt WHERE id_location='" . $_POST['id_location'] . "'";
si $_POST['id_location']est alphanumérique.
0
Jean-Marie
 
Merci bcp à tous pour vos réponses! Ca marche! J'ai suivi les conseils de Virtuaklem et utilisé des $_get[] pour récupérer l'id_location. Encore merci, je suis content, mon stage se termine ce soir et tout fonctionne. A+. Jean-Marie
0