php mysql根据时间戳返回结果

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

我有一个上传脚本,它在上传广告时会有一个时间戳,我想创建一个脚本,根据时间戳来回显最近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 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";