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

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

  1. 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
    1. 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
  2. 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
    1. 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
      1. 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(); 
        1. (suite du message précédent envoyé trop vite)
          Essaie le code ci-dessus qui est plus complet.
          1. 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
            1. 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
              1. 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.
                1. 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