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. 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.
    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. et le résultat du print donne quoi ?

        çéa te permet de voir la requete qui est exécutée
        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. 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. 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. 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. salut, ilfaut que tu rajoutes des guillemets dans ta requete:

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

                  voila!