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. 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. 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. 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.