php mysql根据时间戳返回结果
我有一个上传脚本,它在上传广告时会有一个时间戳,我想创建一个脚本,根据时间戳来回显最近10次上传 我不知道怎么做,非常感谢任何帮助php mysql根据时间戳返回结果,php,mysql,database,timestamp,echo,Php,Mysql,Database,Timestamp,Echo,我有一个上传脚本,它在上传广告时会有一个时间戳,我想创建一个脚本,根据时间戳来回显最近10次上传 我不知道怎么做,非常感谢任何帮助 <?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
<?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();
?>
更好的方法是使用MySQL条件:
SELECT * FROM people WHERE posttime < NOW() LIMIT 0, 10
SELECT * FROM people WHERE posttime < $someNotCurrentTimePHPVar ORDER BY posttime DESC LIMIT 0, 10
但如果比较时间不总是当前时间,则添加条件:
SELECT * FROM people WHERE posttime < NOW() LIMIT 0, 10
SELECT * FROM people WHERE posttime < $someNotCurrentTimePHPVar ORDER BY posttime DESC LIMIT 0, 10
你需要订货条款
在查询的desc order中添加order by子句,如下所示
$sql = "SELECT * FROM people WHERE posttime < $now order by posttime desc LIMIT 0, 10";
还要检查posttime字段在数据库中是否为DATETIME类型或类似类型,而不仅仅是文本类型。请注意,如果您使用的是预处理语句,则应该是绑定参数。相反,您直接插入了变量$now,我意识到它不是来自用户输入的,并且在任何情况下它都应该作为DATETIME文本单引号引用。
$sql = "SELECT * FROM people WHERE posttime < $now order by posttime desc LIMIT 0, 10";