我们如何在 codeigniter 中使用 or_where_in 和其他 where 条件

how can we use or_where_in along with other where condition in codeigniter

这里卡住了 or_where_in condition.while 使用此条件结果正确获取这是我的代码请看一下

public function get_date_wise_sales_info($start_date, $end_date,$type=NULL,$user_id=NULL,$get_all_user_ids=NULL)
{
    if(!empty($type))
    {
        $this->db->where('type',$type);
    }
    if(!empty($user_id))
    {
        $this->db->where('user_id', $user_id);
    }
    if(!empty($get_all_user_ids))
    {
        $this->db->or_where_in('user_id',$get_all_user_ids);
    }

    $this->db->where("DATE(bills.created_at) BETWEEN '{$start_date}' AND '{$end_date}'");

    $this->db->order_by('bills.id','desc');
    $query = $this->db->get('bills');
    return $query->result();
}

此处通过使用 or_where_in 条件未选择 dates 的结果即将到来,如果我删除 or_where_in 结果将获得 correctly.how 以编写正确的语法使用 or_where_in.i 写了 where_in 而不是 or_where_in 但没有显示任何内容并且我使用的是 codeigniter 3.1.5 版本

我不知道这是否是您想要做的,但由于 OR 语句,您可能需要使用 query grouping

public function get_date_wise_sales_info($start_date, $end_date,$type=NULL,$user_id=NULL,$get_all_user_ids=NULL)
{
    if(!empty($type))
    {
        $this->db->where('type',$type);
    }

    if(!empty($user_id) && !empty($get_all_user_ids))
    {
        // Check for both, with OR
        $this->db->group_start();
        $this->db->where('user_id', $user_id);
        $this->db->or_where_in('user_id',$get_all_user_ids);
        $this->db->group_end();
    } 
    else if(!empty($user_id))
    {
        // Only check for $user_id
        $this->db->where('user_id', $user_id);
    }
    else if(!empty($get_all_user_ids))
    {
        // Only check for $get_all_user_ids
        $this->db->where_in('user_id', $get_all_user_ids);
    }

    $this->db->where("DATE(bills.created_at) BETWEEN '{$start_date}' AND '{$end_date}'");

    $this->db->order_by('bills.id','desc');
    $query = $this->db->get('bills');
    return $query->result();
}

编辑:这比简单地添加分组要复杂一些。已更新以检查所有可能性。