Nein. mysql_fetch_array
gibt nur die nächste Zeile des Ergebnisses zurück und rückt den internen Zeiger vor. Es macht keine Schleife. (Intern kann es irgendwo eine Schleife verwenden oder auch nicht, aber das ist irrelevant.)
while ($row = mysql_fetch_array($result)) {
...
}
Dies bewirkt Folgendes:
mysql_fetch_array
ruft die nächste Zeile ab und gibt sie zurück- die Zeile wird
$row
zugewiesen - der Ausdruck wird ausgewertet und wenn er zu
true
ausgewertet wird , wird der Inhalt der Schleife ausgeführt - das Verfahren beginnt von neuem
Dies bewirkt Folgendes:
mysql_fetch_array
ruft die nächste Zeile ab und gibt sie zurück- die Zeile wird
$row
zugewiesen foreach
durchläuft den Inhalt des Arrays und führt den Inhalt der Schleife so oft aus, wie es Elemente im Array gibt
In beiden Fällen mysql_fetch_array
macht genau das gleiche. Sie haben nur so viele Schleifen, wie Sie schreiben. Beide Konstrukte tun jedoch nicht dasselbe. Der zweite wirkt nur auf eine Zeile des Ergebnisses, während der erste alle Zeilen durchläuft.