SQL-PHP Impossible de rentrer dans une boucle

jackson67 -  
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   -
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

devweb
 
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
jackson67
 
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   Statut Membre Dernière intervention   200
 
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   Statut Membre Dernière intervention   11
 
$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
jackson67
 
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
debutantXXL
 
il m est arrivé pareil. enleve le 1er echo ("hum?"), ca marchera
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
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