Mysql
 sql >> Datenbank >  >> RDS >> Mysql

while ($row =mysql_fetch_array($result)) - wie viele Schleifen werden ausgeführt?

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:

  1. mysql_fetch_array ruft die nächste Zeile ab und gibt sie zurück
  2. die Zeile wird $row zugewiesen
  3. der Ausdruck wird ausgewertet und wenn er zu true ausgewertet wird , wird der Inhalt der Schleife ausgeführt
  4. das Verfahren beginnt von neuem

Dies bewirkt Folgendes:

  1. mysql_fetch_array ruft die nächste Zeile ab und gibt sie zurück
  2. die Zeile wird $row zugewiesen
  3. 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.