Stephan Huber: Probs mit while Abfrage: Solange DS vorhanden ODER $i«=3;

Beitrag lesen

Hallo Slyh,

while($row = mysql_fetch_array($result) && $i<=3)

Das erklärt allerdings die Warnmeldung nicht, oder!? Normalerweise sollte in $row ja die Anzahl der
Array-Elemente stehen, die mysql_fetch_array zurückliefert.

Nein, die Elemente selber als assoziatives Array (Anzahl ist mysql_num_rows).

Allerdings ist mir diese Funktion unbekannt.

<dumme frage>Warum schreibst Du dann eine Antwort?</dumme frage>

Vielleicht besteht die ja darauf, daß ihr Rückgabewert in eine Array-Variable geschrieben wird...

Nein, Sie macht aus $row eine Array-Variable. Der Fehler ist wohl einfach eine fehlende Klammer:

while(($row = mysql_fetch_array($result)) && ($i<=3)).

Ohne die Klammer um die Zuweisung des Arrays an $row beachtet PHP die üblichen Klammerkonventionen,
und damit ist alles rechts vom = Teil des auszuwertenden Ausdrucks, $row erhält als Wert also true oder false.
Die Fehlermeldung entsteht dann, weil wahrscheinlich ein paar Zeilen später irgendwas wie
$name=$row["name"];
steht->da $row ohne Klammer eine Binärwert ist, keine assoziatives Array, gibt's einen Fehler

Viele Grüße
Stephan