【问题标题】:php mysql echo results according to timestamp根据时间戳的php mysql echo结果
【发布时间】:2026-02-20 20:15:01
【问题描述】:

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


 ?>

时间戳如下:

2012-10-05 14:40:21

【问题讨论】:

  • 还要检查数据库中的 posttime 字段是否为 DATETIME 或类似类型,而不仅仅是文本类型。
  • 注意,如果使用的是prepared statement,你应该绑定参数。相反,您直接插入了变量 $now(我意识到这不是来自用户输入),并且在任何情况下它都应该作为 DATETIME 文字单引号。

标签: php mysql database timestamp echo


【解决方案1】:

最好使用 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

【讨论】:

    【解决方案2】:

    您需要order by 子句

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

    【讨论】:

      【解决方案3】:

      在查询的desc order 中添加order by 子句,像这样,

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

      【讨论】:

        最近更新 更多