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_arrayruft die nächste Zeile ab und gibt sie zurück- die Zeile wird
$rowzugewiesen - der Ausdruck wird ausgewertet und wenn er zu
trueausgewertet wird , wird der Inhalt der Schleife ausgeführt - das Verfahren beginnt von neuem
Dies bewirkt Folgendes:
mysql_fetch_arrayruft die nächste Zeile ab und gibt sie zurück- die Zeile wird
$rowzugewiesen foreachdurchlä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.