对每个收据计算评论?

时间:2012-11-14 18:40:01

标签: php mysql codeigniter

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

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

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

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

我想要的是计算每个收据有多少评论。但我不知道怎么做。我想我可能应该使用JOIN和num_rows()?

请问你是否理解,所以我可以更好地解释。

度过美好的一天!

3 个答案:

答案 0 :(得分: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();

应该为您提供该ID的收件人ID和评论计数。

然后循环:

foreach($result->result() as $row){
    echo "Recension id $row->recension_id has $row->count comments<br />";
}

答案 1 :(得分: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

答案 2 :(得分: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;
}