Abrufen von Daten aus einer MySQL-Tabelle mit einer while-Schleife in PHP
In der tutorial auf Zugriff auf MySQL Tabellen in PHP, Gaben Sie den code, um eine Liste aller Werte:
$query = "SELECT * FROM example";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['name']. " - ". $row['age'];
echo "<br />";
}
Verstehe ich, wie die while-Schleife gibt true zurück, wenn eine Zeile zu drucken und false, wenn es keine mehr, aber ich verstehe nicht, warum es funktioniert nicht, wenn ich Schreibe:
$query = "SELECT * FROM example";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
while($row){
echo $row['name']. " - ". $row['age'];
echo "<br />";
}
Es gibt nur die erste Zeile, ich nehme an, dies bedeutet, es ist immer die Rückgabe der Wert da stimmt, aber ich verstehe nicht warum.
Sie sollten aufgeben, das tutorial und lernen Sie, dieser statt. Lesen Sie dieser und dieser.
Hast du vergessen, das Semikolon in Zeile 4 der zweiten code, auch wenn du getestet?
mysql_fetch_array() gibt nur einen Datensatz zu einem Zeitpunkt. Jeder Aufruf der Funktion liefert die nächste Zeile in der Ergebnismenge.
Vielen Dank für das heads-up, ich hatte nicht gemerkt, es war alles ungültig
Nein, das war nur ein Fehler in der Eingabe, werde ich Bearbeiten
Hast du vergessen, das Semikolon in Zeile 4 der zweiten code, auch wenn du getestet?
mysql_fetch_array() gibt nur einen Datensatz zu einem Zeitpunkt. Jeder Aufruf der Funktion liefert die nächste Zeile in der Ergebnismenge.
Vielen Dank für das heads-up, ich hatte nicht gemerkt, es war alles ungültig
Nein, das war nur ein Fehler in der Eingabe, werde ich Bearbeiten
InformationsquelleAutor Sebiddychef | 2013-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
:
nicht funktioniert weil
$row
nur einen Wert pro Ausführung, was bedeutet, dass die while-Schleife läuft ewig.Aus der
mysql_fetch_array
doc:In der
while($row = mysql_fetch_array($result))
- version statt, diewhile
's bedingte Ausdruck wird ausgeführt, in jeder Schleife, daher das verschieben dermysql
internen Ergebnis Zeiger weiter (Lesen der nächsten Folge).InformationsquelleAutor Shoe
halten, sollten Sie diese
da, in jeder Schleife "drehen", $Zeile bekommt einen neuen Wert. Wenn Sie den Wert für $Zeile außerhalb der while-Anweisung, $Zeile reman den gleichen Wert.
InformationsquelleAutor BeNdErR
Müssen Sie mysql_fetch_array - Funktion in der while-Schleife wie:
Der mysql_fetch_array-Funktion gibt false, wenn es keine Aufzeichnungen übrig. So Schleife, bis es false zurück.
InformationsquelleAutor asim-ishaq
Werfen Sie einen Blick auf, wie PHP wertet Ausdrücke, um zu bestimmen, TRUE oder FALSE. Sie werden sehen, es wertet NULL als false. Wenn Sie ausführen:
die $row variable hat einen Wert, weil Sie haben eine andere Reihe von Daten, oder Sie ist NULL. Wenn es eine andere Zeile, dann die Schleife abgearbeitet. Andernfalls wird die Schleife beendet.
Durch entfernen der Abtretung du nimmst den ersten Wert zugeordnet ist, die erste Zeile und dann läuft die Schleife ewig, weil $row nie zu false ausgewertet wird.
InformationsquelleAutor Vincent Ramdhanie
Weil im zweiten Beispiel, sobald die erste Schleife wird beendet, es wird nicht ausgeführt mysql_fetch_array($result), in der Erwägung, dass das erste Beispiel führt er, wie es endet jedes loop.
InformationsquelleAutor maethorr