boucle while a l'infinie...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : boucle while a l'infinie...

merci

par bruno.rotrou » 02 mai 2008, 00:31

merci, c'est très clair.
merci aussi pour le petit plus
A+
que de + :wink:

par Cyrano » 01 mai 2008, 22:52

La première formulation était la meilleure et on peut l'améliorer en codant plus strictement :
while(false !== ($resultat = mysql_fetch_array($requete)))
{
    action ....;
} 
En traitant les données retournées, à chaque tour de boucle, le pointeur avance dans le "resultset" : si tu définis ton résultset avant la boucle, il prendra la première ligne et n'ira pas plus loin : donc ta variable ne vaudra jamais false et la boucle ne s'arrêtera qu'avec le timeout de la configuration de PHP.

boucle while a l'infinie...

par bruno.rotrou » 01 mai 2008, 22:39

bonsoir

je viens de découvrir un petit soucis.
jusqu'à présent lorsque je codais pour interroger une BD mysql je faisais ceci:
connexion a la BD .....
$requete=mysql_query(SELECT * FROM table);
while($resultat=mysql_fetch_array($requete)){ action ....;}
tout ce passait très bien. Mais voila que pour des raisons que j'ignore j'ai écris la chose suivante.
connexion a la BD .....
$requete=mysql_query(SELECT * FROM table);
$resultat=mysql_fetch_array($requete);
while($resultat){ action ....;}
et là, ma boucle tourne a l'infinie sur le premier élément du tableau renvoyé par mysql_fetch_array.

je comprends pas pourquoi? while considère tjrs a "true" la var $resultat ????? alors comment fait t'il ds l'autre méthode
(while($resultat=mysql_fetch_array($requete)))
quelque chose m'échappe...
:wink:
A+