2010-12-27 3 views
-1

以下のコードは、recipient = '$u'の24時間未満のメッセージの総数をエコーアウトしますが、動作していないようです。どのようなアイデアはなぜですか?エコーアウトしないクエリ

事前のおかげで、

ジョン

$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

何が問題なのですか?クエリ呼び出しの後に 'var_dump(mysql_error());'を実行するとエラーになりますか? – lonesomeday

+1

phpMyAdmin(または他のクライアント)でこのクエリを試して、結果が返されたかどうかを確認しましたか? – webbiedave

+0

@lonesomedayもし私が 'var_dump(mysql_error());を追加すると' 'string(0)" "' – John

答えて

2

私はあなたの元のクエリに若干の誤差があると思います。これらのクエリが動作しないときに実行する

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

ベストのものを使用することである:あなたは、あなたが期待するよう行が引っ張っされることはありませんので、一番上の行から「AS」、それは次のようになりますが、不足していますphpMyAdminのようなものでクエリをテストし、どのような結果が返されているかを確認します。

+1

実際、実行するのが最善のことは決してクエリーが成功したと決して決して思っておらず、各クエリーコールの後に適切なチェックを行います。 SQLが完全に有効であっても、呼び出しが失敗する理由が他にも数多くあります。 –

+1

mysqlのドキュメントから: "ASキーワードは、select_exprに識別子をエイリアスするとオプションです" ..ここで問題にはならないでしょうか? – Oli

+0

私はmysql_error()に小さなビットを追加しようとしていましたが、ファンダメンタルズは元々の質問に対するコメントですでにカバーされていました。 –

関連する問題