SELECT * FROM table_name ORDER BY column_name?

时间:2012-08-21 06:51:34

标签: php mysql sql

好吧所以我在新闻栏目中编码,每当我插入新新闻时,它的展示在旧新闻之下。 我想让它成为ORDER BY id,但让它像backwards一样开始。我不知道如何解释,但是 我希望它们按照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>";
}
?>

7 个答案:

答案 0 :(得分:5)

DESC子句中添加ORDER BY

SELECT * FROM news ORDER BY id DESC

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

答案 1 :(得分:5)

SELECT * FROM news ORDER BY id DESC

DESC是降序关键字
ASC升序

如果您既未指定,则默认行为为升序

答案 2 :(得分:1)

在sql查询中使用DESC关键字。

答案 3 :(得分: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

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

答案 4 :(得分:0)

   $sqlnews = mysql_query("SELECT * FROM news ORDER BY id DESC");

答案 5 :(得分:0)

试试这个:

只需要添加

order by id DESC

答案 6 :(得分: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>";
}
?>