0

好的,所以我在新闻部分编码,每次插入新新闻时,它都会显示在旧新闻下方。我想让它按 id 排序,但让它像倒数一样开始。我不知道如何解释,但是我希望它们按 id 添加的最新排序,所以如果插入的第一行的 id 是 1,那么我想要它显示在下一个 ID 下方。

所以 id = 2 的行将在这里

所以 id = 1 的行将在这里

这就是我想要的样子,而不是这样

所以 id = 1 的行将在这里

所以 id = 2 的行将在这里

.

对不起我的错误解释我希望这是可以理解的

继承人我的代码到目前为止

<?php  
require("include/config.php");
$sqlnews = mysql_query("SELECT * FROM news ORDER BY id");
while($row = mysql_fetch_array($sqlnews)) {
    $dbdate = $row['date'];
    $dbnews = $row['news'];
    echo "<h1><strong>$dbdate</strong></h1>";
    echo "<div class='content'>$dbnews</div><br><br>";
}
?>
4

7 回答 7

5

加入DESC你的ORDER BY条款

SELECT * FROM news ORDER BY id DESC

默认情况下,它处于ASC模式。

于 2012-08-21T06:53:05.147 回答
5

SELECT * FROM news ORDER BY id DESC

DESC 是降序关键字
ASC 是升序

如果您都不指定,则默认行为是升序

于 2012-08-21T06:53:25.990 回答
1

只需DESC在您的 sql 查询中使用关键字。

于 2012-08-21T06:54:33.407 回答
1
$sqlnews = mysql_query("SELECT * FROM news ORDER BY id DESC");

但是,使用 id 并不是一个好主意,因为从语义上讲,没有什么可以阻止某人更改自动分配 ID 计数的序列。

因此,您应该添加一列created_at。每次插入一行时,都可以使用 SQL 函数NOW()

好处是你可以说:

SELECT * FROM news WHERE created_at <= NOW() ORDER BY created_at DESC

这意味着您可以提前安排新闻项目,它会在日期/时间到达时自动显示!

于 2012-08-21T06:54:40.693 回答
0
   $sqlnews = mysql_query("SELECT * FROM news ORDER BY id DESC");
于 2012-08-21T06:54:00.967 回答
0

尝试这个:

只需要添加

order by id DESC
于 2012-08-21T06:54:54.337 回答
0

只需用以下代码替换您的代码:

<?php  
require("include/config.php");
$sqlnews = mysql_query("SELECT * FROM news ORDER BY id DESC");
while($row = mysql_fetch_array($sqlnews)) {
    $dbdate = $row['date'];
    $dbnews = $row['news'];
    echo "<h1><strong>$dbdate</strong></h1>";
    echo "<div class='content'>$dbnews</div><br><br>";
}
?>
于 2012-08-21T07:05:41.547 回答