PHP 和 MySQL:按最近日期排序并限制 10

Posted

技术标签:

【中文标题】PHP 和 MySQL:按最近日期排序并限制 10【英文标题】:PHP and MySQL: Order by most recent date and limit 10 【发布时间】:2011-11-05 02:43:40 【问题描述】:

我正在我的网站上构建一个笔记系统,我已经到了这样一个阶段,用户可以使用 php 将笔记发布到 mysql 数据库中,然后 PHP 将它们打印在一个页面上。但是,当他们打印/回显时,最旧的首先出现,但我想要最新的。我还希望它们限制为 10 个,因此页面上只显示 10 个。这是我的 PHP 代码,非常感谢您的帮助:

// initialize some variables
$notedisplaylist = "";
$myObject = "";
$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY         date_time");

while($row = mysql_fetch_array($result))
  $note_title = $row["note_title"];
  $note_body = $row["note_body"];
  $date = $row["date_time"];
  $notedisplaylist .= '<h2>' . $note_title . '</h2><br /><p>' . $note_body . '</p><hr /><p>Noted: ' . $date . '</p><hr /><br />';

【问题讨论】:

【参考方案1】:

试试

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10");

有关ORDERLIMIT 的更详细说明,请访问MySQL 文档中有关sorting rows 和基本select syntax 的文章(查找描述LIMIT 的项目符号)。

【讨论】:

【参考方案2】:

给个赞

 ORDER BY date_time DESC

否则,您将按升序对它们进行排序..这就是为什么旧的排在第一位的原因

【讨论】:

【参考方案3】:

应该这样做:

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");

【讨论】:

【参考方案4】:

使用:

SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 10

DESC:降序(从最新到最旧) LIMIT 10:找到前 10 条记录。

【讨论】:

【参考方案5】:

这样做

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");

【讨论】:

【参考方案6】:

如果你希望你的 LIMIT 是一个变量,这里我将它命名为 $limit:

"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";

【讨论】:

以上是关于PHP 和 MySQL:按最近日期排序并限制 10的主要内容,如果未能解决你的问题,请参考以下文章

MySQLi + PHP 按日期和 ID 降序排序

从 Postcode DB 获取 lat/lng 并在 PHP/MYSQL 中按最近的顺序排序

mysql 按日期排序并排序父表

MySQL按4个字段日期和时间排序

按两列对 MySQL 表排序

在mysql和php中按日期范围分组