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");
有关ORDER
和LIMIT
的更详细说明,请访问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的主要内容,如果未能解决你的问题,请参考以下文章