6

我需要有人帮我解决这个问题。今天我的脑袋不想思考。

所以,我有一个名为“recensions”的表,还有一个名为“comments”的表。在每个表中,我都有一个名为“amne_id”的列。这将使我可以将评论与正确的修订联系起来。

现在,在我的第一页上,我只需使用代码获取所有修订:

$rec = $this->db->get('recensions');

我想要的是计算每次修订有多少评论。但我不知道怎么做。我想我也许应该使用 JOIN 和 num_rows()?

如果你不明白,请询问,以便我更好地解释。

祝你今天过得愉快!

4

3 回答 3

2
$this->db->select('COUNT(*) as count, recensions.anme_id as recension_id')
->from('recensions')
->join('comments','recensions.anme_id = comments.anme_id','left')
->group_by('anme_id');
$result = $this->db->get();

应该给你recensions id和那个id的评论数。

然后循环:

foreach($result->result() as $row){
    echo "Recension id $row->recension_id has $row->count comments<br />";
}
于 2012-11-14T19:49:58.783 回答
0

我不知道您正在使用的数据库连接器,但在纯 SQL(假设connection recensions.id=comments.anme_id连接)中,试试这个:

SELECT COUNT(comments.id), anme_id
FROM recensions
LEFT JOIN comments on comments.anme_id=recensions.id
GROUP BY anme_id
于 2012-11-14T18:49:02.570 回答
0

像这样??

$sql = mysql_query("SELECT * FROM recensions");
while($row = mysql_fetch_array($sql)){
$amne_id = $row{"amne_id"};
$sql2 = mysql_query("SELECT * FROM comments WHERE amne_id='$amne_id'");
$total_comments = mysql_num_rows($sql2);
echo $total_comments;
}
于 2012-11-14T20:41:45.277 回答