1

データベースから、過去 24 時間に投稿された最も人気のある 10 件の投稿を、いいね! に基づいて選択したいと思います。各投稿のデータベースでは、post_date 列に date("Ymd H:i:s") を使用して、投稿が投稿された時刻を保存しました。

私はこのようなものが必要です:

$most_popular = mysqli_query($mysqli_connect, "SELECT * FROM posts WHERE (time() - post_date) < 86400 ORDER BY likes DESC LIMIT 10");
4

4 に答える 4

2

次のことができます:

SELECT * 
FROM posts 
WHERE post_date > DATE_SUB(NOW(), INTERVAL 1 DAY) 
ORDER BY likes DESC 
LIMIT 10
于 2013-03-15T22:20:47.580 に答える
2

post_date24時間前と比較するだけです:

$last_24_hours = date("Y-m-d H:i:s", strtotime("-24 Hours"));
$query = sprintf("SELECT * 
                    FROM posts 
                   WHERE post_date > '%s'
                ORDER BY likes DESC
                   LIMIT 10", $last_24_hours);
$most_popular = mysqli_query($mysqli_connect, $query);
于 2013-03-15T22:22:25.533 に答える
0
SELECT *
FROM posts
WHERE post_date >= (now() - INTERVAL 1 DAY)
ORDER BY ...
etc...
于 2013-03-15T22:21:01.043 に答える
0

あなたの質問は、「mysqli_query 内で日付 (“Ymd H:i:s”) と time() を比較することは可能ですか?」

答えはイエスです:

SELECT TIME('2003-12-31 01:02:03'); // returns '01:02:03'

注:それがあなたの質問であれば、これは多くの日付を処理できません。

于 2013-03-15T22:22:54.327 に答える