burinho Posté 29 Avril 2005 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
burinho Posté 29 Avril 2005 Auteur Partager 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager Posté 29 Avril 2005 Allez, on parie un verre de pastis... Burinho, "echote" nous cette variable, on risque gros là lol Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager Posté 29 Avril 2005 Dan, en plus, t'as un ; dans ta requète ça marchera surement pas.. Où ca ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
burinho Posté 29 Avril 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager 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;} Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager Posté 29 Avril 2005 Quel oeil ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
burinho Posté 29 Avril 2005 Auteur Partager 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') Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager Posté 29 Avril 2005 Et pas d'erreur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 29 Avril 2005 Partager 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 !! :/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager 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". Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 29 Avril 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Titag Posté 29 Avril 2005 Partager 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"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
burinho Posté 29 Avril 2005 Auteur Partager Posté 29 Avril 2005 j'ai resolus le probleme, mais j'ai pas vraiment cerner ou était le probleme Lien vers le commentaire Partager sur d’autres sites More sharing options...
dièse Posté 29 Avril 2005 Partager 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; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant