2012-10-05 79 views
-1

我有一个上传脚本,当广告上传时需要时间戳,我想创建一个脚本,根据时间戳回显最近10次上传。php mysql根据时间戳echo结果

我不知道如何做到这一点,任何帮助非常感谢!

<?php 

$now = date("Y-m-d H:i:s"); 

echo $now; 

$sql = "SELECT * FROM people WHERE posttime < $now LIMIT 0, 10"; 

    $q  = $conn->prepare($sql) or die("failed!"); 
    // Bind the params to the placeholders 
    $q->execute(); 


?> 

时间戳如下:

2012-10-05 14:40:21 
+0

而在什么问题是? –

+0

还要检查posttime字段是DATETIME类型还是类似数据库中的类型,而不仅仅是文本类型。 – Cray

+1

请注意,如果正在使用预准备语句,则应该绑定参数。相反,你已经直接插入了变量'$ now'(我意识到这不是来自用户输入),并且在任何情况下它都应该被单引号为DATETIME文字。 –

回答

2

更好的是使用MySQL条件:

SELECT * FROM people WHERE posttime < NOW() LIMIT 0, 10 

但在你的情况posttime总是比目前更低,我认为:)在此案例我认为正确的查询是:

SELECT * FROM people ORDER BY posttime DESC LIMIT 0, 10 

但是,如果你比较时并不总是当前时间,比添加条件:

SELECT * FROM people WHERE posttime < $someNotCurrentTimePHPVar ORDER BY posttime DESC LIMIT 0, 10 
1

您需要order by条款

SELECT * 
FROM people 
WHERE posttime < $now 
order by posttime desc 
LIMIT 0, 10 
0

desc为了添加order by子句中查询,这样,

$sql = "SELECT * FROM people WHERE posttime < $now order by posttime desc LIMIT 0, 10";