16

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

6 回答 6

30

这应该这样做:

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
于 2011-08-27T14:06:33.910 回答
10

采用:

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

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

于 2011-08-27T14:06:50.633 回答
7

尝试

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

有关 and 的更详细说明ORDERLIMIT请访问 MySQL 文档关于排序行和基本选择语法的文章(查找描述的项目符号LIMIT)。

于 2011-08-27T14:06:00.673 回答
6

给喜欢

 ORDER BY date_time DESC

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

于 2011-08-27T14:06:10.563 回答
5

做这个

$result = mysql_query("SELECT * FROM notes WHERE note_author_id='$u_id' ORDER BY date_time DESC LIMIT 0, 10");
于 2011-08-27T16:21:14.477 回答
0

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

"SELECT * FROM tbl ORDER BY input_date DESC LIMIT 0, $limit";
于 2017-01-15T01:43:17.633 回答