SQL-PHP Impossible de rentrer dans une boucle
jackson67
-
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Zep3k!GnO Messages postés 2025 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code :
La requête fonctionne lorsque je la copie dans PHPmyAdmin et elle me ressort 2 entrées ce qui est correct.
Mais impossible de rentrer dans la boucle.
voila ce que la page affiche :
hum?
Erreur SQL !
Pourquoi la boucle ne fonctionne pas?
Vous remarquerez que le "mysql_error()" ne donne pas d'info sur la nature de l'erreur...
Cordialement,
Jérôme
Voici mon code :
$req_client = mysql_query("SELECT bla bla bla")or die("erreur de connexion"); echo "hum? <br />"; while($result = mysql_fetch_array($result_client)or die('Erreur SQL !<br>'.mysql_error())) { echo "boucle ok <br />"; }
La requête fonctionne lorsque je la copie dans PHPmyAdmin et elle me ressort 2 entrées ce qui est correct.
Mais impossible de rentrer dans la boucle.
voila ce que la page affiche :
hum?
Erreur SQL !
Pourquoi la boucle ne fonctionne pas?
Vous remarquerez que le "mysql_error()" ne donne pas d'info sur la nature de l'erreur...
Cordialement,
Jérôme
A voir également:
- SQL-PHP Impossible de rentrer dans une boucle
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Logiciel sql - Télécharger - Bases de données
- Sql (+) - Forum Programmation
- Php alert ✓ - Forum PHP
7 réponses
Dans ton while, l'argument pour mysql_fetch_array n'est pas $result_client mais $req_client
$req_client = mysql_query("SELECT bla bla bla")or die("erreur de connexion"); echo "hum? <br />"; while($result = mysql_fetch_array($req_client)) { echo "boucle ok <br />"; }
Devweb,
Effectivement dans le code que j'ai posté j'ai mis result_client à la place de req_client. C'est a force de faire des test du coup je me suis trompé en postant le sujet, mais en passant le bon argument j'ai le meme resultat, je vais essayer cette histoire de echo cette aprem car la je ne suis pas au bureau.
Ca ne m'etonnerai meme pas que ce soit cela
Effectivement dans le code que j'ai posté j'ai mis result_client à la place de req_client. C'est a force de faire des test du coup je me suis trompé en postant le sujet, mais en passant le bon argument j'ai le meme resultat, je vais essayer cette histoire de echo cette aprem car la je ne suis pas au bureau.
Ca ne m'etonnerai meme pas que ce soit cela
En fait c'est normal, tu n'as pas d'erreur sql c'est ta syntaxe qui est fausse :
équivaut à
Donc la comme tu peux le voir, il va exécuter les 2 commandes à chaque itération et donc à la première itération, il va faire ton mysql_fetch_assoc, mais il va aussi exécuter ton die !
Donc la syntaxe correcte est :
Zep3k!GnO
while($result = mysql_fetch_array($result_client)or die('Erreur SQL !<br>'.mysql_error()))
équivaut à
while( ($result = mysql_fetch_array($result_client)) || ( die('Erreur SQL !<br>'.mysql_error())) )
Donc la comme tu peux le voir, il va exécuter les 2 commandes à chaque itération et donc à la première itération, il va faire ton mysql_fetch_assoc, mais il va aussi exécuter ton die !
Donc la syntaxe correcte est :
while( $result = mysql_fetch_array($result_client) )
Zep3k!GnO
On est des rangers mec, des rangers...
$req_client = mysql_query("SELECT bla bla bla from table")or die("erreur de connexion");
http://formation-sites.blogspot.com/p/php.html
http://formation-sites.blogspot.com/p/php.html
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zep3k!GnO,
j'ai compris ce que tu voulais me dire, ce que tu me propose de faire c'est ce que j'avais fait à la base.
Le "or die" je ne l'ai rajouté juste pour tester.
en faisant ca :
Le resultat est le meme, impossible de rentrer dans la boucle.
j'ai compris ce que tu voulais me dire, ce que tu me propose de faire c'est ce que j'avais fait à la base.
Le "or die" je ne l'ai rajouté juste pour tester.
en faisant ca :
$req_client = mysql_query("SELECT bla bla bla")or die("erreur de connexion"); echo "hum? <br />"; while($result = mysql_fetch_array($result_client)) { echo "boucle ok <br />"; }
Le resultat est le meme, impossible de rentrer dans la boucle.
il m est arrivé pareil. enleve le 1er echo ("hum?"), ca marchera
Hors sujet.... Tu crois que c'est en enlevant un echo que tu vas rentrer dans le while ?? ? :S
Bin si tu rentres pas dans ton while c'est p'tet car ta requête ne retourne aucune ligne :
Avec le mysql_num_rows tu vas t'assurer d'avoir des résultat et sinon ca t'affichera ta requête et tu pourra voir pourquoi elle ne retourne aucun résultat.
Hors sujet.... Tu crois que c'est en enlevant un echo que tu vas rentrer dans le while ?? ? :S
Bin si tu rentres pas dans ton while c'est p'tet car ta requête ne retourne aucune ligne :
$sSql = "SELECT bla bla bla"; $req_client = mysql_query($sSql)or die("erreur de connexion"); echo "hum? <br />"; if(mysql_num_rows($result_client) > 0){ while($result = mysql_fetch_array($result_client)) { echo "boucle ok <br />"; } }else{ echo "La requête n'a retournée aucun enregistrement : ".$sSql; }
Avec le mysql_num_rows tu vas t'assurer d'avoir des résultat et sinon ca t'affichera ta requête et tu pourra voir pourquoi elle ne retourne aucun résultat.