Не. mysql_fetch_array
просто връща следващия ред от резултата и придвижва напред вътрешния показалец. Не се зациклява. (Вътрешно може да използва или не може да използва някакъв цикъл някъде, но това е без значение.)
while ($row = mysql_fetch_array($result)) {
...
}
Това прави следното:
mysql_fetch_array
извлича и връща следващия ред- редът е присвоен на
$row
- изразът се оценява и ако се оценява на
true
, съдържанието на цикъла се изпълнява - процедурата започва отначало
Това прави следното:
mysql_fetch_array
извлича и връща следващия ред- редът е присвоен на
$row
foreach
обикаля съдържанието на масива и изпълнява съдържанието на цикъла толкова пъти, колкото има елементи в масива
И в двата случая mysql_fetch_array
прави абсолютно същото нещо. Имате само толкова цикли, колкото пишете. И двете конструкции обаче не правят едно и също нещо. Вторият ще действа само върху един ред от резултата, докато първият ще обикаля всички редове.