Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - quantos loops estão sendo executados?


Não. mysql_fetch_array apenas retorna a próxima linha do resultado e avança o ponteiro interno. Não dá loop. (Internamente, pode ou não usar algum loop em algum lugar, mas isso é irrelevante.)
while ($row = mysql_fetch_array($result)) {
   ...
}

Isso faz o seguinte:
  1. mysql_fetch_array recupera e retorna a próxima linha
  2. a linha é atribuída a $row
  3. a expressão é avaliada e se for avaliada como true , o conteúdo do loop é executado
  4. o procedimento recomeça

Isso faz o seguinte:
  1. mysql_fetch_array recupera e retorna a próxima linha
  2. a linha é atribuída a $row
  3. foreach faz um loop sobre o conteúdo do array e executa o conteúdo do loop quantas vezes houver itens no array

Em ambos os casos mysql_fetch_array faz exatamente a mesma coisa. Você tem apenas tantos loops quanto escreve. Ambas as construções não fazem a mesma coisa. O segundo atuará apenas em uma linha do resultado, enquanto o primeiro fará um loop em todas as linhas.