Php+requete sql

Résolu
Bonjour,
slt
j'ai un problème dans une page d'insertion en php.. je comprend pa le message d'erreur..

Parse error: parse error in C:\wamp\www\annuaire\insertion_etab.php on line 57
la ligne 57 contient la requete d'insertion
$req= "INSERT INTO gestion_cathegorie (nom,site,e_mail,tel,description,listecat_id,id_region,prem_resp) VALUES ('$nom','$site','$mail',$tel1,'$desc',$id_listecat,$ville,'$resp'");

je pense qu'elle est correcte mais il y a une erreur dans les variables parce ke kon je fai
par exemple echo $nom; ca n'affiche rien

or j'ai mi dans l'action du formulaire dont s'y trouve les champs le nom de la page qui contient la requete!!
est ce ke quelqu'un peut m'aider SVP :(

7 réponses

  1. Salut info_Louka,

    problème de concaténation, tu as oublié les . et des ' sur :

    ('$nom','$site','$mail',$tel1,'$desc',$id_listecat,$ville,'$resp'");

    Il faut que tu fasses la distinction entre php et sql donc :

    ('".$nom."','".$site."','".$mail."','".$tel1."','".$desc."','".$id_listecat."','".$resp."')"

    Si tu as du Integer, enlèves les ' et laisse que les "sur la variable concernée.
    0
    1. le problème c'est ke même avant la ligne de la requete quand je met
      echo $nom;
      ou bien echo pour une autre variable ca ne marche pas ca n'affiche rien
      0
      1. ca a marché l'affichage càd ke g le contenu des variables sauf que la requete ne marche tjrs pas :'(
        en faite j'ai essayé d'exécuter la requete

        insert into gestion_cathegorie (nom,site,e_mail,tel,description,listecat_id,id_region,prem_resp) values ('journal','aaa@hhh.com',256544,'dsdszdfz',1,1,'dfdfd');

        directement dans Mysql et ca me donne le problème suivant

        #1136 - Column count doesn't match value count at row 1
        0
        1. à la fin de ta ligne, ce n'est pas:
          $resp'"); 


          mais plutôt

          $resp');" 


          remarque le
          "
          0
          1. Non xamurai, il ne faut pas mettre ton point virgule dans ta guillemet.

            info_Louka, ta requête ne peut pas marcher, tu n'as pas le même nombre de champs, et dans un insert tu as besoin d'avoir le même nombre.

            (nom,site,e_mail,tel,description,listecat_id,id_region,prem_resp) : 8 champs

            ('journal','aaa@hhh.com',256544,'dsdszdfz',1,1,'dfdfd') : 7 champs

            Et je ne pense pas que dans MySQL tu as besoin du point virgule à la fin.

            Dis moi des nouvelles ++.

            ps : $resp')"; a la fin, pas le ; dans la guillemet.
            0
            1. oui c'est le nombre de champs effectivements.

              ---
              pas besoins de point virgule mais c'est du code propre. et vaut mieux apprendre à generer du code propre que d'apprendre les exception.
              c'est tout comme le "var" en javascript.
              On en a pas toujours besoin, mais c'est mieux avec.
              0
            2. Je n'ai pas dis de pas mettre le point virgule, mais de le mettre après la guillemet ^^, car tu avais ecris : $resp');" au lieu de $resp')";
              0
            3. OUI c'est vrai
              mais ca c'est qu'un bout de code.
              0
          2. Fait plutôt un echo sur ta variable $req pour voir à quoi elle ressemble. Ce sera plus facile de déceler l'erreur. (Tu peux copier/coller le résultat dans MySQL et l'exécuter de là).

            Mais en effet, l'erreur semble être où tu as placé tes guillemettes.

            Ceci devrait fonctionner:
            $req= "INSERT INTO gestion_cathegorie (nom,site,e_mail,tel,description,listecat_id,id_region,prem_resp) VALUES ('$nom','$site','$mail',$tel1,'$desc',$id_listecat,$ville,'$resp')"; 
            0
            1. Les concaténations sont fausses. Ca ne risque pas de marcher ^^
              0
          3. ca a marché je vous remercie, c'était un problème de version j'ai reglé ca :)
            merci infiniment
            0