2010-12-27 13 views
-1

Der folgende Code sollte die Gesamtzahl der Nachrichten unter 24 Stunden alt, wo recipient = '$u', echo, aber es scheint nicht zu funktionieren. Irgendeine Idee warum nicht?Abfrage nicht abgehört

Vielen Dank im Voraus,

John

$sqlStrw = "SELECT COUNT(*) newmessages 
    FROM PRIVATEMESSAGE pm 
WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY) 
    AND recipient = '$u'"; 


    $resultw = mysql_query($sqlStrw); 

$arrw = array(); 
echo "<table class=\"samplesrecw\">"; 
while ($roww = mysql_fetch_array($resultw)) { 
    echo '<tr>'; 
    echo '<td style="border:5px solid #FF8F20;" class="sitename5pw">'.$roww["newmessages"].'new1</td>'; 
    echo '</tr>'; 
    } 
echo "</table>"; 
+1

Was funktioniert nicht? Erhalten Sie einen Fehler, wenn Sie 'var_dump (mysql_error());' nach dem Abfrageanruf tun? – lonesomeday

+1

Haben Sie diese Abfrage in phpMyAdmin (oder einem anderen Client) versucht, um zu sehen, ob Ergebnisse zurückgegeben werden? – webbiedave

+0

@lonesomeday Wenn ich 'var_dump (mysql_error());' 'hole ich' string (0) "" ' – John

Antwort

2

Ich denke, es in Ihrer ursprünglichen Abfrage ein kleiner Fehler ist. Sie sind die „AS“ in der obersten Zeile fehlt so die Zeile wird nicht erwartet werden, ziehen, sollte es so aussehen:

$sqlStrw = "SELECT COUNT(*) AS newmessages 
    FROM PRIVATEMESSAGE pm 
WHERE pm.datesent >= DATE_SUB(NOW(), INTERVAL 1 DAY) 
    AND recipient = '$u'"; 

Beste, was zu tun ist, wenn diese Abfragen funktionieren nicht verwendet wird etwas wie phpMyAdmin, um die Abfrage zu testen und zu sehen, welche Ergebnisse zurückgegeben werden.

+1

Eigentlich sollte man niemals davon ausgehen, dass die Abfrage erfolgreich war, und die entsprechenden Prüfungen nach jedem Abfrageaufruf durchführen. Selbst wenn der SQL-Server einwandfrei ist, gibt es eine Vielzahl anderer Gründe, warum der Anruf fehlschlägt. –

+1

Aus den mysql-Dokumenten: "Das AS-Schlüsselwort ist optional, wenn ein select_expr mit einem Bezeichner aliasiert wird" .. sollte also hier nicht das Problem sein? – Oli

+0

Ich wollte ein kleines bisschen zu mysql_error() hinzufügen, aber die Grundlagen wurden bereits in den Kommentaren zur ursprünglichen Frage behandelt. –