Php+requete sql

Résolu/Fermé
Signaler
Messages postés
64
Date d'inscription
mardi 25 janvier 2011
Statut
Membre
Dernière intervention
16 mars 2013
-
Messages postés
64
Date d'inscription
mardi 25 janvier 2011
Statut
Membre
Dernière intervention
16 mars 2013
-
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

Messages postés
122
Date d'inscription
vendredi 27 février 2009
Statut
Membre
Dernière intervention
6 septembre 2015
3
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.
Messages postés
64
Date d'inscription
mardi 25 janvier 2011
Statut
Membre
Dernière intervention
16 mars 2013

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
Messages postés
64
Date d'inscription
mardi 25 janvier 2011
Statut
Membre
Dernière intervention
16 mars 2013

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
Messages postés
223
Date d'inscription
mardi 11 janvier 2011
Statut
Membre
Dernière intervention
19 février 2013
15
à la fin de ta ligne, ce n'est pas:
$resp'"); 


mais plutôt

$resp');" 


remarque le
"
Messages postés
122
Date d'inscription
vendredi 27 février 2009
Statut
Membre
Dernière intervention
6 septembre 2015
3
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.
Messages postés
223
Date d'inscription
mardi 11 janvier 2011
Statut
Membre
Dernière intervention
19 février 2013
15
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.
Messages postés
122
Date d'inscription
vendredi 27 février 2009
Statut
Membre
Dernière intervention
6 septembre 2015
3
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')";
Messages postés
223
Date d'inscription
mardi 11 janvier 2011
Statut
Membre
Dernière intervention
19 février 2013
15
OUI c'est vrai
mais ca c'est qu'un bout de code.
Messages postés
627
Date d'inscription
mardi 12 juin 2007
Statut
Membre
Dernière intervention
19 février 2016
394
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')"; 
Messages postés
122
Date d'inscription
vendredi 27 février 2009
Statut
Membre
Dernière intervention
6 septembre 2015
3
Les concaténations sont fausses. Ca ne risque pas de marcher ^^
Messages postés
64
Date d'inscription
mardi 25 janvier 2011
Statut
Membre
Dernière intervention
16 mars 2013

ca a marché je vous remercie, c'était un problème de version j'ai reglé ca :)
merci infiniment