无法在Codeigniter中使用DISTINCT或按关键字分组

时间:2019-03-14 08:14:09

标签: codeigniter-3

这是我的controller.php

$courserecord = $this->front->get_data_wheree('tbl_course_offered.course_id',array('isactive'=>'1'));

这是我的Model.php

function get_data_wheree($table,$where)
{
  return $this->db->group_by($table,$where)->result();
}

在我的model.php中,我想在查询中使用DISTINCT或GROUP_BY。

group_by工作不正常。

1 个答案:

答案 0 :(得分:0)

您的模型无法正常工作,因为result()方法是类CI_DB_result的成员,但是group_by()返回了CI_DB_query_builder的实例。换句话说,您正在尝试为所使用的类调用一个不存在的方法。

方法get()get_where()是仅有的两个返回CI_DB_result对象的查询生成器方法。简而言之,您必须先调用get()get_where(),然后才能使用result()或任何类似方法。

另一个问题是group_by()不接受您提供的类型的第二个参数。您正在提供一个数组,但是需要一个布尔值。您需要添加另一种方法来定义where条件。

您的模型的方法应如下所示。 我更改了第一个参数的名称,以更好地描述其目的。

function get_data_where($groupby, $where)
{
  return $this->db
         ->group_by($groupby)
         ->where($where)
         ->get('tbl_course_offered')
         ->result();
}