gpt4 book ai didi

php - 计算与 id 相关的数据库行数

转载 作者:行者123 更新时间:2023-11-29 12:05:01 25 4
gpt4 key购买 nike

我正在创建一个论坛,现在我正在尝试弄清楚如何计算主题中的回复数量。我想计算每个 topic_id # 的行数。因此,如果主题 id 为 5,并且我的 topic_id #5 数据库中有 10 行,我希望它计数并输出 10。

我尝试像这样构造我的查询

 $query2 = mysqli_query($con,"SELECT t.*, COUNT(p.topic_id) AS tid2 FROM forum_topics AS t, forum_posts AS p ORDER BY topic_reply_date DESC")

然而,这一切都搞乱了我原来的查询,这是......

$query2 = mysqli_query($con,"SELECT * FROM forum_topics WHERE `category_id` ='".$cid."' ORDER BY topic_reply_date DESC")

现在它只显示 1 个主题,而不是我的 15 个主题,并且它输出了一个非常大的计数数字 406。

如何让以下代码仅计算与正在输出的主题关联的 topic_id,并且仍然允许输出我的所有主题?

$query2 = mysqli_query($con,"SELECT t.*, COUNT(p.topic_id) AS tid2 FROM forum_topics AS t, forum_posts AS p ORDER BY topic_reply_date DESC")
or die ("Query2 failed: %s\n".($query2->error));
$numrows2 = mysqli_num_rows($query2);
//if ( false===$query2 ) {
// die(' Query2 failed: ' . htmlspecialchars($query2->error));
//}
if($numrows2 > 0){
$topics .= "<table width='100%' style='border-collapse: collapse;'>";
//Change link once discussion page is made
$topics .= "<tr><td colspan='3'><a href='discussions.php'>Return to Discussion Index</a>".$logged."<hr /></td></tr>";
$topics .= "<tr style='background-color: #dddddd;'><td>Topic Title</td><td width='65' align='center'>Replies</td><td width='65'
align='center'>Views</td></tr>";
$topics .= "<tr><td colspan='3'><hr /></td></tr>";
while($row = mysqli_fetch_assoc($query2)){
$tid = $row['id'];
$title = $row['topic_title'];
$views = $row['topic_views'];
$replies = $row['tid2'];
$date = $row['topic_date'];
$creator = $row['topic_creator'];
$topics .= "<tr><td><a href='forum_view_topic.php?cid=".$cid."&tid=".$tid."'>".$title."</a><br /><span class='post_info'>Posted
by: ".$creator." on ".$date."</span></td><td align='cener'>".$replies."</td><td align='center'>".$views."</td></tr>";
$topics .= "<tr><td colspan='3'><hr /></td></tr>";
}

最佳答案

使用GROUP BY子句(tutorial):

SELECT t.*, COUNT(p.topic_id) AS tid2 
FROM forum_topics AS t JOIN forum_posts AS p on t.id = p.topic_id
GROUP BY t.id

另请注意,我的示例中使用了 OUTER JOIN(而不是您的示例中的 CROSS JOIN)。

关于php - 计算与 id 相关的数据库行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31656860/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com