sql >> Base de Datos >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - ¿cuántos bucles se están realizando?

No. mysql_fetch_array simplemente devuelve la siguiente fila del resultado y avanza el puntero interno. No hace bucle. (Internamente, puede o no usar algún bucle en alguna parte, pero eso es irrelevante).

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

Esto hace lo siguiente:

  1. mysql_fetch_array recupera y devuelve la siguiente fila
  2. la fila está asignada a $row
  3. la expresión se evalúa y si se evalúa como true , se ejecuta el contenido del bucle
  4. el procedimiento comienza de nuevo

Esto hace lo siguiente:

  1. mysql_fetch_array recupera y devuelve la siguiente fila
  2. la fila está asignada a $row
  3. foreach recorre el contenido de la matriz y ejecuta el contenido del ciclo tantas veces como elementos haya en la matriz

En ambos casos mysql_fetch_array hace exactamente lo mismo. Solo tienes tantos bucles como escribes. Sin embargo, ambas construcciones no hacen lo mismo. El segundo solo actuará en una fila del resultado, mientras que el primero recorrerá todas las filas.