burinho Posté 29 Avril 2005 Posté 29 Avril 2005 Bonjour, a chaque fois que je modifie un champ ou que je re rajoute un champ supplémentaire d'insertion dans ma base, plus rien ne s'inscrit dans la base. pourtant mon message de bonne execution de la requête fonctionne, et un mail est généré comme si tout était ok.
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Ce n'est pas parce qu'un script continue de "tourner" que la requète est bonne... vérifie ta requète, que tu as mis le bon nombre de données, le bon nom des champs... Fais même un echo $requete; histoire de voir la requète affichée... Et puis donne un bout de code et la structure de ta table pour qu'on voie
burinho Posté 29 Avril 2005 Auteur Posté 29 Avril 2005 $req_inscription = "INSERT INTO membres( date_adhesion,date_fin,utilisateur,mot_passe,nom, prenom,profil,adresse, complement, cp, ville,telephone,portable, mail,fax) VALUES('$date_adhesion','$date_fin','$utilisateur','$mot_passe','$nom','$prenom','membre','$adresse', '$complement','$cp','$ville','$telephone','$portable','$mail','$fax')"; ci joint la requette je dois mettre l'echo ou ?
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 (modifié) Juste après ce que tu viens de mettre, tu mets echo $req_inscription; Ensuite tu regardes ce qui est affiché sur ta page... Si rien ne te paraît anormal, il faut que tu essayes directement la requète dans phpmyadmin qui te dira plus précisément si quelque chose ne va pas Modifié 29 Avril 2005 par sarc
Dan Posté 29 Avril 2005 Posté 29 Avril 2005 Remplaces la deuxième partie de ton code par ceci: ../.. VALUES('".$date_adhesion."','".$date_fin."','".$utilisateur."','".$mot_passe."','".$nom."','".$prenom."','".membre."','".$adresse."','";$complement."','".$cp."','".$ville."','".$telephone."','".$portable."','".$mail."','".$fax."')"; Car les simples quotes protègent les variables qui ne sont donc pas interprétées en php. Dan
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Dan, la requète est entre guillemets, il n'y aura pas de problèmes ici... Les variables seront bien remplacées par leurs valeurs ! Les simples quotes sont juste là pour le SQL, mais pas de problèmes avec les variables PHP, sauf erreur de ma part (je me méfie, j'en sors des belles en ce moment )
Dan Posté 29 Avril 2005 Posté 29 Avril 2005 Un print $req_inscription t'en dira plus Chez moi, selon la première forme, je n'ai pas les valeurs... mais bien selon la seconde
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Allez, on parie un verre de pastis... Burinho, "echote" nous cette variable, on risque gros là lol
Titag Posté 29 Avril 2005 Posté 29 Avril 2005 Bonjour, Un print $req_inscription t'en dira plus Chez moi, selon la première forme, je n'ai pas les valeurs... mais bien selon la seconde <{POST_SNAPBACK}> J'aurais tendance à être d'accord avec Sarc... C'est pas beau mais ca doit marcher. Sinon, burhino, pour savoir ce qui ne va pas tu peux essayer de récupérer l'erreur si elle ne s'affiche pas. Pour cela : if (!mysql_query($req_inscription)) {echo mysql_error();} Je parie que dans ta requète tu as un (ou plusieurs) champ(s) avec des apostrophes.
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Dan, en plus, t'as un ; dans ta requète ça marchera surement pas.. Bon, j'arrète de chercher je vais me faire taper
Titag Posté 29 Avril 2005 Posté 29 Avril 2005 Dan, en plus, t'as un ; dans ta requète ça marchera surement pas.. Où ca ?
burinho Posté 29 Avril 2005 Auteur Posté 29 Avril 2005 if (!mysql_query($req_inscription)) {echo mysql_error();} Je parie que dans ta requète tu as un (ou plusieurs) champ(s) avec des apostrophes. <{POST_SNAPBACK}> je veins essayer en faite j'ai mon message executio, mais devant j'ai Query was empty comme erreur
Titag Posté 29 Avril 2005 Posté 29 Avril 2005 Query was empty, si je comprend l'anglais, cela veut dire que la requete est vide. Tu as essayé de faire un echo $req_inscription ?? Ou de faire : if (!mysql_query($req_inscription)) {echo mysql_error()."<br>Requète:".$req_inscription;}
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Où ca ? <{POST_SNAPBACK}> '";$complement."', Il s'est caché ici Burinho faut absolument afficher ta requète pour voir le problème !!
burinho Posté 29 Avril 2005 Auteur Posté 29 Avril 2005 INSERT INTO membres( date_adhesion,date_fin,utilisateur,mot_passe,nom, prenom,profil,adresse, complement, cp, ville,telephone,portable, mail,fax) VALUES('2005-01-01','2005-12-31','administrateur','999','99','88','membre','88', '888','88',' 8','8888','8888','999','99')
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 (modifié) Maintenant, copie cette requète et essaye la directement dans PHPmyAdmin (tu vas dans une table, et dans l'onglet SQL, tu copies cette requète). Normalement, il te mettra une erreur, et comme ça tu sauras exactement où est le problème... dit : Dan, j'ai gagné Modifié 29 Avril 2005 par sarc
Dan Posté 29 Avril 2005 Posté 29 Avril 2005 dit : Dan, j'ai gagné Possible mais c'est "programmer avec les pieds" A chacun son style, je préfère les mains !
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Possible mais c'est "programmer avec les pieds" A chacun son style, je préfère les mains ! <{POST_SNAPBACK}> Chacun son style Mais je ne comprends pas pourquoi c'est moche de faire une requète comme ça... J'ai pris pour habitude dès le début de faire tout ce que je pouvais avec des ", et de laisser mes variables se balader dedans sans demander leur reste... Je me sens plus à l'aise en faisant ça qu'en faisant ce que tu as dis : pas de problèmes de ponctuation, on place la variable là ou on veut, c'est plus lisible... Enfin bon, j'avoue que je comprends pas pourquoi c'est pire qu'autre chose !! :/
Titag Posté 29 Avril 2005 Posté 29 Avril 2005 Enfin bon, j'avoue que je comprends pas pourquoi c'est pire qu'autre chose !! :/ Parce que c'est plus propre. Bon... Tu va me dire : C'est pas une raison. D'ac, mais si tu dois ajouter une fonction sur ta variable ? Genre un addslashes(). Il vaut donc mieux ecrire $texte = "Quelque ".$chose; Comme ca, si tu dois ajouter la fonction il ne te reste plus qu'a ecrire : $texte = "Quelque ".addslashes($chose); C'est comme ca, on concatène Et pis si tu ecris : $texte = 'Quelque $chose'; Avec des simple quotes, un echo $texte affiche "Quelque $chose".
Sarc Posté 29 Avril 2005 Posté 29 Avril 2005 Comme ca, si tu dois ajouter la fonction il ne te reste plus qu'a ecrire :$texte = "Quelque ".addslashes($chose); Oui, moi j'ai juste une autre version de la chose : avoir des variables prêtes à l'emploi avant de les afficher lol... Enfin bon, c'est vrai que c'est pas plus mal de mettre la fonction directement dedans Et pis si tu ecris : $texte = 'Quelque $chose'; Ca je savais, mais je l'écris pas généralement j'évite les simples quotes lol
Titag Posté 29 Avril 2005 Posté 29 Avril 2005 Il y a une autre raison aussi (après j'arrète on est HS) echo "Quelque ".$chose; est plus rapide que echo "Quelque $chose";
burinho Posté 29 Avril 2005 Auteur Posté 29 Avril 2005 j'ai resolus le probleme, mais j'ai pas vraiment cerner ou était le probleme
dièse Posté 29 Avril 2005 Posté 29 Avril 2005 Il y a une autre raison aussi (après j'arrète on est HS) echo "Quelque ".$chose; est plus rapide que echo "Quelque $chose"; <{POST_SNAPBACK}> Le plus rapide étant : echo 'Quelque ',$chose;
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant