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:
mysql_fetch_array
recupera e retorna a próxima linha- a linha é atribuída a
$row
- a expressão é avaliada e se for avaliada como
true
, o conteúdo do loop é executado - o procedimento recomeça
Isso faz o seguinte:
mysql_fetch_array
recupera e retorna a próxima linha- a linha é atribuída a
$row
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.