Php 如何从数据库中获取数据,然后将其放入数组中,以便对其进行排序?

Php 如何从数据库中获取数据,然后将其放入数组中,以便对其进行排序?,php,arrays,sorting,while-loop,Php,Arrays,Sorting,While Loop,所以我试着对从数据库中得到的数据进行排序。我通过计算评论表中的“article_id”来计算一篇文章有多少评论。这是我的解决方案: $result = mysqli_query($con, "SELECT * FROM articles"); while ($row = mysqli_fetch_array($result)) { $id = $row["id"]; $result_2 = mysqli_query($con, "SELECT COUNT(*) AS id FROM comme

所以我试着对从数据库中得到的数据进行排序。我通过计算评论表中的“article_id”来计算一篇文章有多少评论。这是我的解决方案:

$result = mysqli_query($con, "SELECT * FROM articles");
while ($row = mysqli_fetch_array($result)) {
$id = $row["id"];

$result_2 = mysqli_query($con, "SELECT COUNT(*) AS id FROM comments WHERE article_id=$id");
$row_2 = mysqli_fetch_array($result_2);

echo $row_2['id']."<br>";
$result=mysqli_query($con,“从文章中选择*);
while($row=mysqli\u fetch\u数组($result)){
$id=$row[“id”];
$result_2=mysqli_query($con,“选择COUNT(*)作为注释中的id,其中article_id=$id”);
$row_2=mysqli_fetch_数组($result_2);
echo$row_2['id']。“
”;
示例输出:
0
2
0

但我想这样分类:
2
0
0

因此,我理解使用sort()来实现这一点,但当我使用它时,它表示参数必须是array。我已尽一切努力使数据成为一个数组,就像您在这里看到的解决方案:

但这不管用。我知道我做错了什么。我是个初学者。所以我希望我不是个讨厌的人

谢谢

您几乎不应该在另一个查询的while循环中有一个查询

所以,一石二鸟:

SELECT `articles`.*, COUNT(`comments`.`id`) AS `count`
FROM `articles`
LEFT JOIN `comments`
    ON `comments`.`article_id`=`articles`.`id`
GROUP BY `articles`.`id`
ORDER BY `count` DESC

完成了!

为什么不使用mysql呢?您可以订购,还可以通过一次查询获得评论数:

SELECT articles.*, COUNT(comments.id) as comment_count
FROM articles
LEFT JOIN comments ON comments.article_id = articles.id
GROUP BY articles.article_id
ORDER BY articles.article_id

可以通过使用以下查询通过mysql实现

SELECT COUNT(comments.id) as total_comments
FROM article
JOIN comments ON article.id = comments.article_id 
GROUP BY ARTICLE 
ORDER BY total_comments DESC;

您可以在SQL查询中添加一个
ORDER BY id DESC
子句。为什么不使用mysql对其进行排序?这就是mysql的用途。您也可以使用单个SQL查询获得带有注释计数的文章谢谢!我的mysql知识非常少。我必须改进它。有没有可能解释一下为什么从不在另一个查询中使用查询?因为它是不可伸缩的。假设你有一千篇文章。那就是你必须运行一千个内部MySQL查询。如果我为我的网站做了这件事,那里有数十万个神奇宝贝,服务器会…爆炸!嗯,我有一个问题..是否也可以展示没有0注释的文章输出?或者至少最少展示它们。@user3328041哎哟。忘了那个箱子。编辑答案。谢谢!你的名字很漂亮!