所以我试着找出从数据库中获取的数据。我通过计算" 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>";
示例输出:
0
2
0
但我想这样排序:
2
0
0
所以我理解为此使用sort(),但是当我使用它时它表示参数必须是数组。我已经尝试了一切来使数据像你在这里看到的解决方案一样: Populate PHP Array from While Loop
但它不起作用。我知道我做错了什么。我是一个初学者..所以我希望我不会痛苦。
谢谢
答案 0 :(得分:0)
你应该几乎从不在另一个查询的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
完成!
答案 1 :(得分:0)
为什么不使用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
答案 2 :(得分:0)
可以通过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;