2016-08-06 5 views
0

Es gibt eine übliche Beispielschleife, die beim Unterrichten von PHP-Select-Abfragen verwendet wird, und ich habe gerade etwas Code geschrieben, um aus einer Tabelle auszuwählen. Ich hatte diesen Code schon vorher benutzt, aber ich habe nie darüber nachgedacht, warum er so geschrieben wurde.

while($row = mysqli_fetch_assoc($result)){ 

} 

Mein Verständnis ist, dass eine while-Schleife ist etwas, das läuft, bis die Bedingung falsch, manchmal einen inkrementellen Wert und Vergleiche mit oder was nicht. In diesem Fall bin ich mir nicht sicher, was die Schleife dazu bringt, "Looping zu stoppen"? Anfangs würde ich es als eine Endlosschleife sehen, aber vielleicht bin ich mir nicht ganz sicher, was mysqli_fetch_assoc($result) jedes Mal zurückkehren könnte, wenn die Schleife umläuft. Kann mir bitte jemand das erklären? Danke

Antwort

2

Das Ergebnis der Zuweisung in PHP ist das gleiche wie der Wert, der der Variablen zugewiesen wurde. Das heißt, die Aussage $row = mysqli_fetch_assoc($result) hat einen "Wert" von mysqli_fetch_assoc($result).

while wird Schleife, bis die Bedingung falsch ist, oder genauer ist == false. Beachten Sie, dass sich dies von === false unterscheidet. Da in PHP null == false die Schleife fortgesetzt wird, bis keine Zeilen mehr im Ergebnis der MySQL-Datenbank zurückgegeben werden, gibt die Funktion null zurück, wenn keine Zeilen mehr vorhanden sind.

+0

ok, also gibt es einen inkrementellen Wert in der Schleife? Mit anderen Worten, woher weiß es, die nächste Zeile in der Tabelle zurückzugeben, anstatt die gleiche Zeile wiederholt? – Pixelknight1398

+1

Es wird in '$ result' gespeichert. –