while-schleife mit 2 bedingungen
Philipp Freiberger
- php
Hallo,
mein Problem:
Von einer mysql-abfrage sollen nur die ersten 3 "treffer" gezeigt werden.
Ich würde gerne in einer while schleife 2 "Bedingungen" abfragen.
Etwa in der Form:
"while ($row = mysql_fetch_object($result) && $i <= 2)"
wobei ich nicht weis ob es diese Syntax überhaubt gibt :)
Beim Testen liefert das zwar 3 (bzw. wie auch immer $i gewählt wird) zeilen als ausgabe ABER die mysql daten sind alle "0" bzw. werden nicht dargestellt!
Frage: Bin ich auf dem Holzweg oder krieg ich bloss die richtige syntax nicht raus?
Nochmal zur vervollständigung der Quellcode:
"<?php
$result = sendQuery("SELECT am, ort, art FROM tbl_ca_termine, tbl_ca_was WHERE tbl_ca_termine.was = tbl_ca_was.id AND am > NOW()
ORDER BY am", "Ein Termin fuer Startseite");
echo "<ul>\n";
$i=0;
while ($row = mysql_fetch_object($result) && $i <= 2)
{
echo "\n<li><strong>". $row->art. "</strong> in ". $row->ort. " am ". $row->am. ".";
$i++;
}
echo "</ul>\n";
?>"
sendQuery("expr1", "expr2") ist in einem include definiert und funktioniert auch (soll helfen die übersicht zu wahren).
wenn ich "&& $i <= 2" weglasse funktioniert alles.
DANKE für die Hilfe
Sup!
Vielleicht ist && ein höherpriorer Operator als = ?
In C ist er das.
Gruesse,
Bio
Hoi,
Ich würde gerne in einer while schleife 2 "Bedingungen" abfragen.
Etwa in der Form:
"while ($row = mysql_fetch_object($result) && $i <= 2)"
wobei ich nicht weis ob es diese Syntax überhaubt gibt :)
Beim Testen liefert das zwar 3 (bzw. wie auch immer $i gewählt wird) zeilen
als ausgabe ABER die mysql daten sind alle "0" bzw. werden nicht dargestellt!
Generell ist es richtig, die Bedingungen per '&&' zu verknuepfen. Du hast nur
nicht daran gedacht, dass der Zuweisungs-Operator die niedrigste Bindung hat
und zuletzt ausgefuehrt wird. Das heisst, es wird das Ergebnis von
mysql_fetch_object($result) UND-verknuepft mit dem Ergebnis von $i <= 2. Das
Ergebnis dieser UND-Verknuepfung wird dann $row zugewiesen. Was du moechtest
ist:
while(($row = mysql_fetch_object($result)) && $i <= 2) {
# code
}
Gruesse,
CK
Generell ist es richtig, die Bedingungen per '&&' zu verknuepfen. Du hast nur
nicht daran gedacht, dass der Zuweisungs-Operator die niedrigste Bindung hat
und zuletzt ausgefuehrt wird.
<homer simson>Doh'</homer simson> - da hätte man ja drauf kommen können :)
DANKE