Tag,
ich verzweifle an einem einfachen SELECT-Script:
$entry_sql = "SELECT [lange Abfrage...]";
$entry_result=mysql_query($entry_sql);
echo mysql_errno($db) . ": " . mysql_error($db). "\n";
while($entry=mysql_fetch_array($entry_result)) {
if(empty($entry)) {
echo 'Keine Einträge für heute';
} else {
// Ausgabecode
}
}
Wenn für die SELECT-Anweisung brauchbare Einträge zur Verfügung stehen, werden diese auch korrekt geladen und ausgegeben. Das Problem liegt also nicht in der SQL-Syntax. Das Problem liegt darin, leere Abfragen zu erkennen. Die if-Weiche mit empty($entry) soll das erledigen. Nur leider wird die while-Schleife gar nicht erst ausgeführt, wenn SQL keine Einträge zurückgibt (getestet mit echo). Ich kann mir somit die gesamte if-Abfrage in der while-Schleife sparen. Wie erkenne ich nun aber, ob Mysql ein leeres Resultat zurückgibt? Fehler werden nicht erzeugt, wenn die Abfrage leer bleibt. Ein empty($entry_result); vor while funktioniert auch nicht, da echo $entry_result; immer "Resource id #7" ausgibt (woher das auch immer kommen mag, ein DB-Eintrag ist das nicht). Wie kann ich nun vorgehen?
mfG
Fred