Php CodeIgniter-计数行活动记录接头
我试图更好地理解CI是如何工作的 这是我的第一张表,app_新闻: 我的第二个是app_news_评论: 我用来显示新闻信息的模型是:Php CodeIgniter-计数行活动记录接头,php,codeigniter,activerecord,Php,Codeigniter,Activerecord,我试图更好地理解CI是如何工作的 这是我的第一张表,app_新闻: 我的第二个是app_news_评论: 我用来显示新闻信息的模型是: public function get_news($where = array()) { return $this->db->select('*') ->from('app_news') ->where($where) ->get() ->result()
public function get_news($where = array()) {
return $this->db->select('*')
->from('app_news')
->where($where)
->get()
->result();
}
我用于统计新闻评论的模型是:
public function count_comment($id_news) {
return (int) $this->db->where(array('id_news' => $id_news)
->count_all_results('app_news_comments');
}
我的第一个解决方案是在我的视图上打印一个foreach,并将count_comment函数放入循环中,以计算我有多少评论,但是我不尊重MVC模式。我该怎么做?获取该信息的最佳方法是使用以下查询:
SELECT
app_news.id,
app_news.name,
COUNT(app_news_comments.id)
FROM app_news_comments
JOIN app_news ON app_news_comments.id_news = app_news.id
GROUP BY app_news_comments.id_news
因此,您需要使用Codeigniter上的活动记录创建查询,或者您可以直接添加,因为Codeigniter上的活动记录有一些限制。
但是,您可以在Codeigniter上使用这种方式创建查询:
$this->db->select('[YOUR FIELDS AND COUNT]', FALSE)
->from('app_news_comments') .... etc
要直接添加查询,请执行以下操作:
$this->db->query('[QUERY HERE]');
我希望这对你有帮助
$this->db->select('[YOUR FIELDS AND COUNT]', FALSE)
->from('app_news_comments') .... etc
$this->db->query('[QUERY HERE]');