Requete delete

Résolu
j'ai créé un formulaire pour supprimer une des lignes dans une table mais cela ne fonctionne pas voila mon code

<?php
$db = mysql_connect('localhost', '****', '*****');
mysql_select_db('authentification',$db);

//echo $_POST['nom'];

$req = "delete from utilisateurs where nom = $_POST['nom']";
mysql_query($req);
?>
Dans mon formulaire il y a un champ texte qui s'appel nom et selon ce qui est rentré ds ce champ, je voudrai supprimer la ligne qui correspond dans ma table
quelqu'un peut il m'aider ???? merci

9 réponses

  1. salut, ilfaut que tu rajoutes des guillemets dans ta requete:

    soit
    delete from utilisateurs where nom = '$_POST['nom']';

    voila!
    1. j'ai mis les guillemetes ainsi
      $req = "delete from utilisateurs where nom = '$_POST['nom']'";
      mysql_query($req);

      $j'ai le message d'erreur suivant
      Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in h:\site\php\supprimer.php on line 9
      la ligne 9 étant la ligne de la requete $req
      1. essaie déjçà de lancer ta requete avec un nom que tu connais,que tu as inséré:

        par exemple

        $req = "delete from utilisateurs where nom='toto'";
        1. alors réécris ta requete en remplacant Que toto par $_POST['nom'] et puis tu affiche la requete, enfin la chaine quuu'elle vaut:

          par exmple pour tester :

          juste après l'affectation dans $req,

          tu écris print $req; die(); qui arrete le script. tu devrais avoir à l'ecran la requete qui doit etre exécutée, et qui ne doit pas etre correcte si ca ne fontionne pas.
          1. $req = "delete from utilisateurs where nom = '$_POST['nom']'";
            print $req;
            die();
            mysql_query($req);
            voila ce que ca donne mais ca donne toujours le même message d'erreur
            1. et le résultat du print donne quoi ?

              çéa te permet de voir la requete qui est exécutée
              1. j'ai trouver j'ai du déclarer la variable$_POST['nom']; en $nom avant pour que ca marche je sais pas trop pourquoi en tout cas merci d'avoir répondu aussi vite

                <?php
                $db = mysql_connect('localhost', '***', '****');
                mysql_select_db('authentification',$db);
                //$nom=$_POST['nom'];

                //echo $_POST['nom'];
                $nom=$_POST['nom'];

                $req = "delete from utilisateurs where nom='$nom'";
                print $req;
                mysql_query($req);
                ?>
                1. oui je sais:

                  cela vient des guillemets:

                  dans '$_POST['nom']' il y a une chaine qui va de ' à '$_POST[' et il ne comprend pas la suite.

                  Il faut plutot écrire

                  $req = "delete from utilisateurs where nom=' ".$_POST['nom'] ." ' ";
                  tout betement...

                  ...ou comme tu as fais aussi.