1

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

$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 ではなく、SECOND レコードを返すことです。しかし、奇妙なことに、MySQL のクエリ ウィンドウでこれを実行すると、正しいレコードが返されます。

これは、返されるレコードのデータです: id: 53、videoid: abc123、expire:1335596400、home: 1、active:1

誰でもこれについて何か考えがありますか?

4

2 に答える 2

2

1335596400である28 aprilため、明確な結果はtime();の結果ではありません。MySQLの別のタイムスタンプを使用して(またはタイムスタンプをまったく使用せずに)クエリを実行しているようです

于 2012-05-09T18:52:44.180 に答える
0

use $query = "SELECT * FROM videos WHERE expire >= $timestamp AND home = 1 AND active = 1 ORDER BY ID DESC LIMIT 0,1";

代わりは

$query = "SELECT * FROM videos WHERE expire >= $timestamp AND home = 1 AND active = 1 ORDER BY ID DESC LIMIT 1";

于 2012-05-09T20:04:25.953 に答える