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