我正在我的网站上构建一个笔记系统,我已经到了用户可以使用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 />';
}
答案 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");
有关ORDER
和LIMIT
的更详细说明,请访问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";