[gull] PHP et Mysql

Philippe Jayet hip at lan-attack.ch
Mon Dec 1 21:06:01 CET 2003


Hello !

Rafael Muñoz Moreno Davila wrote:
 > while (mysql_fetch_array($result))
 >     {
 >       while ($row = @ mysql_fetch_row($result))
 >       {
 >          foreach($row as $data)
 >          {
 > 	   if ($data == "OUI")
 > 	     $oui++;
 > 	   if ($data == "NON")
 > 	     $non++;
 > 	
 > 	   echo $data;	
 > 	 }
 >       }
 >     }

Bien vu Florian, c'est un prob de boucles ... La première boucle while 
va fetcher le premier résultat, sans qu'il soit traité. Le deuxième 
while va fetcher les résultats suivants, à partir du deuxième jusqu'au 
dernier, en les traitant cette fois-ci.

Pour rappel, la différence entre les fonctions mysql_fetch_array( ) et 
mysql_fetch_row( ) est simplement la forme de la valeur retournée. Dans 
le premier cas, un tableau associatif est retourné ('column_name1' => 
'val1', 'column_name2' => 'val2', ...) et dans le deuxième, un bête 
array ('val1', 'val2', ...). Mais les deux fonctions ont pour but de 
lire un $result d'une mysql_query( ).

Il suffit donc de supprimer le premier while, ce qui donne :

       while ($row = @ mysql_fetch_row($result))
       {
          foreach($row as $data)
          {
	   if ($data == "OUI")
	     $oui++;
	   if ($data == "NON")
	     $non++;
	
	   echo $data;	
	 }
       }

Tout devrait jouer comme ça. Mais je conseille vivement l'utilisation de 
mysql_fetch_array( ) à la place : plus clair, moins susceptible aux 
erreurs pour à peine plus de ressources.

Voir :
http://ch.php.net/mysql-fetch-row
http://ch.php.net/mysql-fetch-array

Bonne soirée, à plus !

Philippe J.





More information about the gull mailing list