2012-05-09 21 views
1

私のページでクエリを実行していて、間違った結果を返しています。MySQLが間違ったレコードを返す

$timestamp = time(); 
$query = "SELECT * FROM videos WHERE expire >= $timestamp AND home = 1 AND active = 1 ORDER BY id DESC LIMIT 1"; 
$result = mysql_query($query) or die(mysql_error()); 

if(mysql_num_rows($result) > 0) { 
    $row = mysql_fetch_array($result); 
    foreach ($row as $key => $value) { 
     $$key = $value; 
    } 
} 

問題があり、それは番目のレコードを返して、そしてない最新ID: はここに私のコードです。しかし、奇妙な部分は、私はMySQLのクエリウィンドウでこれを実行する場合は、正しいレコードを返します。

これは、それが返す必要があり、レコードのデータです: ID:53、動画ID:ABC123、有効期限が切れる:1335596400、自宅:1、アクティブ:1

誰もがこの上の任意のアイデアがありますか?

+0

あなたのデータセットを表示してください – Madbreaks

+0

代わりに有効期限フィールドで注文を試みましたか? –

+0

多分あなたのコンピュータのタイムゾーンと関係がありますか? –

答えて

2

133559640028 aprilであるため、time()の結果はclearyではありません。 あなたがMySQLで別のタイムスタンプを持つクエリをrunnignているようだ(あるいは全くタイムスタンプなし)> = $タイムスタンプとホーム= 1、アクティブ= 1 ORDERを期限切れビデオから

+0

おかげさまで、モニターをあまりにも凝視していた時に、何かのことを正しく見ることができて面白いです...私の間違いを見てくれてありがとう。 – Rick

0

使用 $クエリ=「SELECT * BY id DESC LIMIT 0,1 ";

代わり

$クエリ= "のid DESCをLIMIT 1 BY> = $タイムスタンプとホーム= 1、アクティブ= 1 ORDERを期限切れ動画SELECT * FROM";

関連する問題