从codeigniter 3中的关系表计数项目

时间:2017-09-05 11:41:47

标签: database codeigniter relation

我想计算codeigniter 3中某个类别中的每个帖子 我的模特现在是:

public function get_category()
{
    $query = $this->db->get('category');
    return $query->result_array();
}


public function getPostByCategory($id)
{       
    $query= $this->db->select("*")
                                ->from('post')
                                ->join('category','category.id = post.category_id')
                                ->where('post.category_id',$id)
                                ->get();

    return $query->result_array();      
}   

我正在尝试在我的控制器中打印视图中的“存档”菜单

$data['category'] = $this->category_model->get_category();

但是这会打印出所有类别标题,包括空标题。如何仅打印带有帖子的类别?

1 个答案:

答案 0 :(得分:2)

首先,您需要获取类别并将其与帖子一起加入,然后获取非空的所有类别,然后将其分组以查看唯一值。你可以试试这个:

$this->db->select("category.id, category.title")
        ->from('category')
        ->join('post','category.id = post.category_id')
        ->where(array('post.category_id !=' => NULL, 'category.id !=' => NULL))
        ->group_by(array("category.id", "category.title"))
        ->get();

如果您遇到任何错误,请告诉我。谢谢!