SQL-PHP Impossible de rentrer dans une boucle

Fermé
jackson67 - Modifié par jackson67 le 18/03/2011 à 17:56
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 21 mars 2011 à 11:48
Bonjour,

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:

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 />"; 
}
1
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
1
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 18/03/2011 à 18:00
En fait c'est normal, tu n'as pas d'erreur sql c'est ta syntaxe qui est fausse :
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...
0
akelo Messages postés 52 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 28 mars 2011 11
18 mars 2011 à 19:13
$req_client = mysql_query("SELECT bla bla bla from table")or die("erreur de connexion");
http://formation-sites.blogspot.com/p/php.html
0

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 :
$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.
0
il m est arrivé pareil. enleve le 1er echo ("hum?"), ca marchera
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
21 mars 2011 à 11:48
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 :
$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.
0

Discussions similaires