Mysql
 sql >> Base de données >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - combien de boucles sont exécutées ?

Non. mysql_fetch_array renvoie simplement la ligne suivante du résultat et fait avancer le pointeur interne. Ça ne boucle pas. (En interne, il peut ou non utiliser une boucle quelque part, mais ce n'est pas pertinent.)

while ($row = mysql_fetch_array($result)) {
   ...
}

Cela fait ce qui suit :

  1. mysql_fetch_array récupère et renvoie la ligne suivante
  2. la ligne est affectée à $row
  3. l'expression est évaluée et si elle est évaluée à true , le contenu de la boucle est exécuté
  4. la procédure recommence

Cela fait ce qui suit :

  1. mysql_fetch_array récupère et renvoie la ligne suivante
  2. la ligne est affectée à $row
  3. foreach boucle sur le contenu du tableau et exécute le contenu de la boucle autant de fois qu'il y a d'éléments dans le tableau

Dans les deux cas mysql_fetch_array fait exactement la même chose. Vous avez seulement autant de boucles que vous écrivez. Cependant, les deux constructions ne font pas la même chose. Le second n'agira que sur une ligne du résultat, tandis que le premier bouclera sur toutes les lignes.