Php_Learner Posté(e) le 26 avril 2007 Partager Posté(e) le 26 avril 2007 Bonjour, comme je continue dans le PHP, je rencontre encore un autre problème ou plutôt une autre erreur. La voici : Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/ox1d1982/domains/oxidimpak.com/public_html/daniel_scripts/verification_donnees.php on line 8 Il me dise qu'il me manque (ou que j'ai de trop) de(s) "," ou de(s) ";" ? Voici mon code : <?php mysql_connect('localhost' , '*****' , '******') or die('Connexion à la BDD impossible'); mysql_select_db('*****') or die('Sélection de la BDD impossible'); $requete_mysql = mysql_query("SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='".($_POST['email'])."'") or die('Exécution de la requête impossible'); while($resultat = mysql_fetch_array($requete_mysql)) { echo '"'$resultat['mdp_bdd']'"'; } mysql_close(); ?> Donc voilà, la ligne 8 c'est mon echo. J'ai pourtant tout essayé =/ et je ne trouve toujours pas, vous êtes mon dernier recour XD =P. Si vous pouvez me mettre sur une piste se serait gentil =D. Ou mieux encore, si vous avez un truc pour afficher une donnée qui vient d'un SELECT au lieu d'une boucle, vous pouvez me dire comment ou où je pourrais le voir comment faire ? s.v.p. À la prochaine =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 27 avril 2007 Partager Posté(e) le 27 avril 2007 L'opérateur de concaténation est le point ( . ), ce n'est pas automatique. Pas bien : echo '"'$resultat['mdp_bdd']'"'; Bien : echo '"' . $resultat['mdp_bdd'] . '"'; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Php_Learner Posté(e) le 27 avril 2007 Auteur Partager Posté(e) le 27 avril 2007 Bonjour, merci, le message d'erreur ne s'affiche plus =), cependant, la boucle n'affiche pas le résultat =/. Je vais essayer de chercher un autre moyen d'afficher un résultat ou une données d'une base de données. Merci Spaz001 =D. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 27 avril 2007 Partager Posté(e) le 27 avril 2007 Je serais toi, je vérifies déjà qu'il y a qq chose a afficher :) Vérifies que ta requete te retourne un résultat, ca vient surement plus de ce côté Fait un echo "SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='".($_POST['email'])."'" quelque part, et tapes la requete obtenu dans phpmyadmin ou autre, pour voir si tu as une ou des lignes. Autrement, tu peux aussi faire un echo "La requete a retourné " . mysql_num_rows($requete_mysql) . " ligne(s)" Car, comme dis plus haut, je pense que ca vient plus de ca personnellement, le reste ayant l'air correct Lien vers le commentaire Partager sur d’autres sites More sharing options...
Php_Learner Posté(e) le 27 avril 2007 Auteur Partager Posté(e) le 27 avril 2007 Rebonjour Spaz001 =) j'ai fais ton conseil, et la requête retourne 0 ligne, donc si je comprend bien, je peux en conclure que ma requête ne fonctionne pas, ou elle ne sélectionne pas les bonne chose c'est ça ?. À bientôt =) Édit : J'ai changé le name d'un input et elle retourne 1 ligne, c'est bon signe ? ^^ Édite 2 : J'ai changé un peu le format de mon code, pour essayer une autre façon d'afficher qu'une boucle : <?php mysql_connect('localhost' , '******' , '*******') or die('Connexion à la BDD impossible'); mysql_select_db('********') or die('Sélection de la BDD impossible'); $requete = "SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='".$_POST['email_c']."'" or die('Exécution de la requête impossible'); $requete_mysql = mysql_query($requete); $informations = mysql_fetch_array($requete_mysql); mysql_close(); ?> <?php echo 'Votre serveur est : '.$informations['serveur']; ?> Il n'y a aucune erreur détectée, sauf que le echo affiche seulement Votre serveur est :. Il n'affiche pas la donnée 'serveur' entrée par l'utilisateur. Peut-être que j'ai encore fais une autre erreur de concaténation ?. En tout cas, je vais encore chercher et merci à vous =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 27 avril 2007 Partager Posté(e) le 27 avril 2007 À partir du moment où tu n'as pas d'erreur, c'est que tu n'as pas de problème de concaténation. Donc si ton écho n'affiche pas la valeur, ca signifie que ta requête n'a pas su la récupérer (ton SELECT ne doit pas sélectionner les bonnes lignes). Si le mysql_num_rows te renvoie toujours 0, c'est que la requête n'a rien récupéré, tout simplement! Le problème est donc dans ta requête (mauvais arguments, mauvaises conditions dans le WHERE...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 27 avril 2007 Partager Posté(e) le 27 avril 2007 Fait un echo $requete."<br />"; juste après avoir défini $requete. Ensuite, tu fais un copier-coller de ce que tu obtiens et tu balance la requête dans PHPMyAdmin. Là, le message d'erreur devrait être plus clair. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Php_Learner Posté(e) le 27 avril 2007 Auteur Partager Posté(e) le 27 avril 2007 Salut Gvos_net, j'ai fais ton conseil, celui d'afficher la requête et voici ce qu'elle affiche : SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='' Mais ma requête est la suivante : SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='".$_POST['email_c']."' Donc, je peux en conclure que ma variable email_c est mal faite, ou est tout simplement pas pris en compte ? Merci de vos conseils =). Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 27 avril 2007 Partager Posté(e) le 27 avril 2007 Exactement, ta variable $_POST['email_c'] ne contient rien. Il faut que tu vois au niveau du formulaire qui t'amène sur cette page (peut-être la page elle-même si elle s'appelle elle-même). La variable du formulaire pour l'e-mail du client s'appelle-t-elle bien "email_c" ? Ton formulaire est-il bien en method="POST" (et pas "GET") ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Php_Learner Posté(e) le 28 avril 2007 Auteur Partager Posté(e) le 28 avril 2007 Resalut =P, en faite, j'ai 3 pages (nom fictifs pour l'exemple) : - Page 1 Elle contient le formulaire qui envoi les données. - Page 2 C'est la page qui enregistre les données du formulaire, dans ma BDD. - Page 3 C'est la page qui lorsque l'enregistrement des données dans la BDD ont été éffectuées, s'affiche avec la requête qui me cause problème ^^. Peut-être que j'ai une page de trop ou autre chose. Mais ma variable email_c existe bien dans mon formulaire, et lorsque l'envoi du formulaire est fait et que la Page 2 se met en "route" ma variable email_c est belle et bien enregistrée dans ma BDD. C'est seulement lors de ma requête sur ma Page 3 qu'elle ne s'affiche pas. Je ne lâche pas ^^, je vais trouver =P et merci de votre aide ! =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 28 avril 2007 Partager Posté(e) le 28 avril 2007 Je crois avoir trouvé d'où venait ton problème. Tu dis que tu passes de la page 2 à la page 3,dès l'insertion effectuée, c'est bien ça? Si oui, le problème est là: la page 2 contient bien un $_POST rempli (par les données venant du formulaire de la page 1) mais la page 2 ne remplit pas ce $_POST (puisque la page 2 ne contient pas de formulaire, elle). Donc, forcément, après le passage page 2 -> page 3, la page 3 ne récupère rien dans $_POST ($_POST existe, mais est vide). Donc ta requête en page 3 échoue! Pour pallier à ce problème, une seule solution: faire en sorte que la page 2 transmette à la page 3 une valeur pour email_c. Par exemple, en mettant cette valeur dans l'url de redirection (ou en mettant cette valeur dans $_SESSION, mais je ne présenterai pas cette solution pour le moment). Ce qui donnerait quelque chose comme ça: // Redirection de la page 2 vers la page 3 header('Location:page3.php?email_c='.$_POST['email_c']); //L'URL pour arriver sur la page 3 est alors de cette forme http://localhost/page3.php?email_c=valeur // Et la requête SQL qui tient compte du passage de paramètres par l'URL devient maintenant SELECT serveur , username , mdp_bdd , nom_bdd , table_c , email FROM infos_bdd_clients WHERE email='".$_GET['email_c']."' Lien vers le commentaire Partager sur d’autres sites More sharing options...
Php_Learner Posté(e) le 28 avril 2007 Auteur Partager Posté(e) le 28 avril 2007 Salut, Merci windu.2b, je vais essayer cette solution plus tard, j'ai un autre projet là =). Merci à toi ! Je vous redonne des nouvelles ;-) Édite : j'ai essayé ta solution et elle fonctionne =D merci à toi =) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Quarky Posté(e) le 28 avril 2007 Partager Posté(e) le 28 avril 2007 Comme quoi même en pleine nuit windu a encore les idées claires Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 28 avril 2007 Partager Posté(e) le 28 avril 2007 Comme quoi même en pleine nuit windu a encore les idées claires En pleine nuit, après quelques verres dans le nez (mais pas beaucoup), un peu claqué (le Quarky sait de quoi je parle: vers 2-3h du matin, j'ai une fâcheuse tendance à m'endormir en soirée ) le Windu sait toujours répondre aux questions de PHP/MySQL Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.