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

时间:2011-08-27 14:03:40

标签: php mysql sql-order-by limit querying

我正在我的网站上构建一个笔记系统,我已经到了用户可以使用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 />';
}

6 个答案:

答案 0 :(得分:26)

这应该这样做:

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

答案 1 :(得分:10)

使用:

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

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

答案 2 :(得分:7)

尝试

$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的文章(查找描述{{1}的项目符号})。

答案 3 :(得分:6)

给予喜欢

 ORDER BY date_time DESC

否则你按升序对它们进行排序..这就是为什么老年人排在第一位

答案 4 :(得分:5)

这样做

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

答案 5 :(得分:0)

如果您希望LIMIT成为变量,我将其命名为$ limit:

"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";
相关问题