Erreur de parsing... J'deviens fou :)

Erreur de parsing... J'deviens fou :) - PHP - Programmation

Marsh Posté le 25-04-2006 à 09:30:51    

Bonjour à tous !
 
J'ai une petite (ou grosse ? ^^) erreur de parsing que je ne trouve pas, j'ai manipulé le code dans tous les sens, rien à faire........ :(
Quelqu'un saurait-il m'aider ?
 

Code :
  1. while ($tmp) {
  2.     if ($tmp==1) {mysql_query("INSERT INTO comportement('Question2')
  3. VALUES ('1')" )};
  4.     elseif ($tmp==2) {mysql_query("INSERT INTO comportement('Question2') VALUES ('2')" )};


Visiblement, elle est dans la requête mysql...
De même avec celle-ci :
 

Code :
  1. mysql_query("INSERT INTO comportement('id','Question1','Question2','Question3') VALUES ('', '$un', 'two', '$trois')" )


Elle ne renvoie aucune erreur sur la page (??!!) mais rien ne s'inscrit dans la Base de données... La table s'appelle "comportement" et il y a dedans les champs "id", "Question1", "Question2" et "Question3" (aucun souci avec les majuscules).
En revanche, cette requête fonctionne bien si je la mets comme suit :
 

Code :
  1. mysql_query("INSERT INTO comportement VALUES ('', '$un', 'two', '$trois')" )


J'avoue être un peu perdu là... J'ai cherché partout sur le net des façons d'écrire les requêtes SQL mais je n'ai rien trouvé qui m'aide à corriger mon problème...
Je précise que je fais tout ça en local, avec PhPMyAdmin.
 
Merci d'avance à ceux qui sauront m'aider :)


Message édité par clemdups le 25-04-2006 à 09:31:55
Reply

Marsh Posté le 25-04-2006 à 09:30:51   

Reply

Marsh Posté le 25-04-2006 à 09:41:11    

Code :
  1. INSERT INTO comportement('id','Question1','Question2','Question3') VALUES ('', '$un', 'two', '$trois')


 
 
 
id, Qestion1, Question2 et Question3 sont de quels types dans ta BD??

Reply

Marsh Posté le 25-04-2006 à 09:42:51    

hardrog a écrit :

Code :
  1. INSERT INTO comportement('id','Question1','Question2','Question3') VALUES ('', '$un', 'two', '$trois')


 
 
 
id, Qestion1, Question2 et Question3 sont de quels types dans ta BD??


 
 
Bonjour et merci de la réponse.
La plupart du temps, les résultats seront des chiffres mais parfois du texte.
Aussi j'ai tout laissé par défaut : VARCHAR.
id est INT par contre (et clé primaire & auto_inc')

Reply

Marsh Posté le 25-04-2006 à 09:45:15    

C'est possible que ton probléme vienne de la. Quand tu as du texte, imagine qu'il comporte des espaces==>source de pb.
 
 
fait un truc du genre:
 

Code :
  1. INSERT INTO comportement('id','Question1','Question2','Question3') VALUES ('', "'.$un.'", "'two'", "'.$trois.'" )


 
en supposant que $un et $trois soient des variables bien renseignées

Message cité 1 fois
Message édité par hardrog le 25-04-2006 à 09:46:16
Reply

Marsh Posté le 25-04-2006 à 10:23:52    

hardrog a écrit :

C'est possible que ton probléme vienne de la. Quand tu as du texte, imagine qu'il comporte des espaces==>source de pb.
 
 
fait un truc du genre:
 

Code :
  1. INSERT INTO comportement('id','Question1','Question2','Question3') VALUES ('', "'.$un.'", "'two'", "'.$trois.'" )


 
en supposant que $un et $trois soient des variables bien renseignées


Question3 ne sera jamais que du texte, j'ai donc modifié ça sur la base de données, merci de l'info ;)
Mais ça ne corrige pas mon problème pour la question 2... Car l'erreur de parsing se trouve dans la ligne du "if" :(

Reply

Marsh Posté le 25-04-2006 à 10:26:48    

essaye d'enlever le point virgule apres l'accolade...


---------------
When I find my code in tons of trouble, friends and colleagues come to me, speaking words of wisdom, "write in C"
Reply

Marsh Posté le 25-04-2006 à 10:27:14    

et de la mettre avant


---------------
When I find my code in tons of trouble, friends and colleagues come to me, speaking words of wisdom, "write in C"
Reply

Marsh Posté le 25-04-2006 à 10:29:49    

Code :
  1. if ($tmp==1) {mysql_query("INSERT INTO comportement('Question2')
  2. VALUES ('1')" )};

 
 
ton point virgule n'est pas a la bonne place je pense....
 
 

Code :
  1. if ($tmp==1) {mysql_query("INSERT INTO comportement('Question2')
  2. VALUES ('1')" );}


 
 
edit: oups grillé


Message édité par hardrog le 25-04-2006 à 10:30:10
Reply

Marsh Posté le 25-04-2006 à 10:33:45    

iannouchka a écrit :

et de la mettre avant


En effet, bien vu, je m'incline.............  :whistle:  
 
Maintenant plus aucune erreur n'est détectée, mais on ne me rajoute rien dans la BDD........
Si j'enlève la partie renseignant les champs, ça marche... Sauf que pour la première partie (celle avec les IF) j'ai absolument besoin de donner le champ :(
 
Si quelqu'un a la patience de continuer à m'aiguiller... Merci ^^

Reply

Marsh Posté le 25-04-2006 à 10:38:35    

tu as la meme erreur de point virgule dans ton elseif.
Mais sinon faut voir...


---------------
When I find my code in tons of trouble, friends and colleagues come to me, speaking words of wisdom, "write in C"
Reply

Marsh Posté le 25-04-2006 à 10:38:35   

Reply

Marsh Posté le 25-04-2006 à 10:38:57    

Fait affficher ta requète avant de l'exécuter...


Message édité par hardrog le 25-04-2006 à 10:39:06
Reply

Marsh Posté le 25-04-2006 à 10:39:54    

peut etre sans guillemets autour du nom de ton champ Question 2 :  
 
mysql_query("INSERT INTO comportement(Question2)VALUES ('1')" );


---------------
When I find my code in tons of trouble, friends and colleagues come to me, speaking words of wisdom, "write in C"
Reply

Marsh Posté le 25-04-2006 à 10:41:25    

iannouchka a écrit :

tu as la meme erreur de point virgule dans ton elseif.
Mais sinon faut voir...


C'est corrigé, j'ai corrigé partout maintenant :p  
 
Pour ce qui est de la requête :

Code :
  1. $result=mysql_query("INSERT INTO comportement('id','Question1','Question3') VALUES ('', '.$un.', '.$trois.')" );
  2. echo $result;


 
Mais rien ne s'affiche sur la page...

Reply

Marsh Posté le 25-04-2006 à 10:43:21    

iannouchka a écrit :

peut etre sans guillemets autour du nom de ton champ Question 2 :  
 
mysql_query("INSERT INTO comportement(Question2)VALUES ('1')" );


Je vois que j'ai encore bien des choses à apprendre... :p
Ca fonctionne à présent...
Merci BEAUCOUP, vraiment :) !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed