Boumbadaboum Posté 7 Août 2005 Posté 7 Août 2005 Bonsoir à tous, J'essaie d'insérer des données dans une base, mais j'obtien ce message d'erreur : You have an error in your SQL syntax near ''cuisine' ( 'libelle' , 'url' , 'definition' , 'specialite', 'lien' , ' at line 1 J'utilise cette requête : $Def="INSERT INTO 'cuisine'( 'libelle' , 'url' , 'definition' , 'specialite', 'lien' , 'lienA' , `lienB` , `lienC`,`lienD`,'Site','nom' ) VALUES ('$libelle', '$url', '$description', '$categorie','$lien', '$lienA' , `$lienB` , `$lienC`,`$lienD`,'$Site','$nom' )"; Cette même requête fonctionne bien pour d'autre formulaire d'insertion de données. J'ai bien vérifié le nom des variables, ainsi que le nom des champs de la base. Donc je ne comprend pas du tout pourquoi j'ai un message d'erreur tel qu'en haut. J'ai essayé aussi de placer une erreur dans la requête pour voir : J'ai mis INSERT INTO 'cusine' au lieu de'cuisine'. J'ai obtenu exactement le même message d'erreur. De quoi cela peut il bien venir?? Merci pour votre aide.
Dan Posté 7 Août 2005 Posté 7 Août 2005 Bonjour, A première lecture tu mélanges allègrement les simples quotes ' et les backquotes ` ... et ce n'est pas bon. Les backquotes ne peuvent être utilisés que pour les noms de tables, pas pour les champs. De plus, le fait de mettre tes variables dans des simples quotes en empêche l'interprétation. Il faut scinder ta chaîne. Dan
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) ok merci Dan pour ta réponse, je n'ai plus le même message d'erreur... Donc j'en ai un autre ! (rien à voir cela étant à première vue) maintenant j'obtiens le message Unknown column 'ma deuxième def' in 'field list' Mais ce que ne comprend pas c'est que 'ma deuxième def' n'est pas le nom d'une colonne c'est simplement la valeur d'une variable. J'explique le fonctionnement global : Le visiteur envoie une def dans la table recette suggérée: ça fonctionne. Je réceptionne le contenu des champs dans mon admin pour valider : les valeurs des champs s'inscrivent directement dans des champs de formulaires, que je revalide ensuite si le contenu est correct. ex: champ recette = les omelettes dans mon admin je recois dans un input text 'les omelettes' etc pour toutes les valeurs. donc 'ma deuxième def' ci dessus n'est rien d'autre que la valeur 'value' d'un imput text, correspondant au contenu d'un champ de la table réceptionnant les suggestions des visiteurs. Pourtant j'obtiens le message ci dessus. J'ai essayé de virer tout simplement ce champs de l'admin, pour ne pas avoir à le valider : Plus de message d'erreur, mais la table de destination ne reçoit absolument rien. Un poltergeist dans mon serveur ? Modifié 7 Août 2005 par Boumbadaboum
Sarc Posté 7 Août 2005 Posté 7 Août 2005 Salut Il faudrait plutôt avoir le code qui pose problème, là je doute que ça soit juste un problème de valeur dans un formulaire, à mon avis c'est plutôt dans le traitement en PHP qu'il y a un souci !
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 Ok : <?php$validerNvDef="SELECT * FROM nouvelleDefinition WHERE libelle like '$nouvelleDefinition%' AND vue=0";$validerDef=mysql_query("$validerNvDef");while ($rNdef=mysql_fetch_array($validerDef)){echo"<input type=\"text\" name=\"libelle\" value=\"$rNdef[libelle]\"><input type=\"text\" name=\"url\"><input type=\"text\" name=\"site\" value=\"$rNdef[site]\"><input type=\"text\" name=\"url\" value=\"$rNdef[url]\"><input type=\"text\" name=\"specialite\" value=\"$rNdef[categorie]\">$rNdef[Nvcategorie]</b><br><textarea name=\"description\" cols=\"40\" rows=\"20\" >$rNdef[description]</textarea><input type=\"text\" name=\"lien\" value=\"$rNdef[lien1]\"><input type=\"text\" name=\"lienA\" value=\"$rNdef[lien2]\"><input type=\"text\" name=\"lienB\" value=\"$rNdef[lien3]\"><input type=\"text\" name=\"lienC\" value=\"$rNdef[lien4]\"><input type=\"text\" name=\"lienD\" value=\"$rNdef[lien5]\"><input type=\"text\" name=\"email\" value=\"$rNdef[email]\"><input type=\"text\" name=\"vue\" value=\"$rNdef[vue]\"><input type="submit" value="Envoyer"> Les champs email et vue ne sont pas insérés dans la requête sql (écrite au début du post). Je récupère le contenu des value des input text ci dessus depuis une table qui contient donc les suggestions. Une fois vérifié en les lisant dans les champs input text je les réexpédie dans une autre table. En théorie donc, puisque l'autre table ne recoit rien.
Dan Posté 7 Août 2005 Posté 7 Août 2005 Ce n'est très certainement pas ce code là auquel Sarc faisait allusion. Ce serait plutôt le code se trouvant dans le script php qui génère les requêtes sql. Dan
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 c'est celui du premier post donc je pensais pas à celui là: Bon voici donc le code qui génère la requête : $Def="INSERT INTO `definitions` ( `libelle` , `url` , `definition` , `specialite`, `lien` , `lienA` , `lienB` , `lienC`,`lienD`,`Site`,`nom` ) VALUES (`$def`, `$url`, `$description`, `$categorie`,`$lien`, `$lienA`, `$lienB`, `$lienC`, `$lienD`,`$Site`,`$nom`)";mysql_query($Def)or die (mysql_error());;echo "Vos données ont été envoyées !"; mysql_close(); Voili voilou Got an idea?
Sarc Posté 7 Août 2005 Posté 7 Août 2005 Je crois que tu n'as pas donné toute l'erreur du script, et surtout il faudrait préciser à quelle ligne de quel programme se situe l'erreur, ça permettra de mieux cibler le problème...
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) ah si j'ai donné toute l'erreur du script : Unknown column 'ma deuxième def' in 'field list' et 'ma deuxième def' c'est la valeur de value input text qui post la variable $def avec ce contenu à destination de la requête sql ci dessus. et j'ai dit que si j'enlève ce champs, je n'ai plus de message d'erreur, mais rien du tout n'est inséré dans la base. Modifié 7 Août 2005 par Boumbadaboum
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) ouah Dan, je viens de voir ta photo : Je croyais que t'étais un petit jeune de 28/30 ans ! (peut être remarque ) Enfin le problème est toujours là hein, faudrait pas l'oublier svp lol Modifié 7 Août 2005 par Boumbadaboum
Dan Posté 7 Août 2005 Posté 7 Août 2005 ouah Dan, je viens de voir ta photo : Je croyais que t'étais un petit jeune de 28/30 ans ! (peut être remarque ) Ah, pourquoi donc ? Je fais plus vieux que ça ? Qu'est ce que j'ai écrit plus haut pour les backquotes ? As-tu lu le post ? Dan
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 La vache je suis une tâche j'ai encore confondu les backquotes et les simples quotes là ça fonctionne c'est bon Donc merci Dan encore, le prob aurait pu être réglé dès le deuxième post.
Sarc Posté 7 Août 2005 Posté 7 Août 2005 Dan il a peut-être 30 ans mais lui au moins a des bonnes lunettes nah... Tu nous fais tourner autour du pot pour nous montrer à la fin que tu n'as pas fais ce qu'avait dit Dan, c'est incroyable ça ! enfin le principal est que ça marche... Si jamais tu as encore un problème n'hésite pas hein lool
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) On a posté ensemble, c'est bon ok. En fait Dan, quand tu m'as dit les backquotes c'est pas pour les champs je n'ai pas fait le rapprochement avec les variables. C'est bête mais bon. Sinon non tu fais bien la trentaine, ton âge quoi. Par contre le coup de la barbe teinte en blanc pour faire oldSchool et tout je sais pas, mais bon c'est toi qui voit. Bon allez j'arrête Et merci Modifié 7 Août 2005 par Boumbadaboum
Dan Posté 7 Août 2005 Posté 7 Août 2005 Tu as ma date de naissance dans mon profil... je n'ai aucunement honte de ma cinquantaine bien entamée
Boumbadaboum Posté 7 Août 2005 Auteur Posté 7 Août 2005 (modifié) Bah y'a pas de quoi avoir honte au contraire, si tu as marché dans le droit chemin toute ta vie plus tu es "âgé" plus tu es intéressant puisque tu es allé plus loin dans le bon sens. En tout cas félicitation pour ton forum : Je me suis inscrit sur 5 forums en même temps il y 2 ou 3 semaines je sais plus et je ne viens plus qu'ici. Bon je vais manger, bonne soirée à tous Modifié 7 Août 2005 par Boumbadaboum
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant