对 MySQL PHP PDO 查询的返回进行排序


Sorting the return of a MySQL PHP PDO query

我正在为我的网络创建一个网站,我在主页上有一个基本的CMS,显示新闻文章。除了一件事之外,这一切都有效,最新的帖子在列表的底部,最旧的帖子在顶部。我希望最新的在顶部,最旧的在底部。我正在使用PDO获取新闻和PHP来显示它。这是获取新闻代码:

<?php
class Article{
    public function fetch_all() {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM articles");
        $query->execute();
        return $query->fetchAll();
    }
    public function fetch_data($id) {
        global $pdo;
        $query = $pdo->prepare("SELECT * FROM articles WHERE  article_id = ? ");
        $query->bindValue(1, $id);
        $query->execute();
        return $query->fetch();
      }
    }

您可以将order by子句与 desc – 降序一起使用:

order by article_id desc
$query = $pdo->prepare("SELECT * FROM articles ORDER BY article_date DESC");

编辑:不小心复制了错误的查询,概念保持不变。

只需修改 fetch_all() 即可

public function fetch_all() {
    global $pdo;
    $query = $pdo->prepare("SELECT * FROM articles ORDER BY article_id DESC");
    $query->execute();
    return $query->fetchAll( PDO::FETCH_ASSOC );
}