Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我们如何在codeigniter中使用or_where_in和其他where条件_Php_Where_Codeigniter 3_Where In - Fatal编程技术网

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

Php 我们如何在codeigniter中使用or_where_in和其他where条件,php,where,codeigniter-3,where-in,Php,Where,Codeigniter 3,Where In,这里我遇到了或_where_处于状态。在使用此状态时,结果得到了正确的结果这是我的代码,请查看 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(

这里我遇到了
或_where_处于
状态。在使用此状态时,结果得到了正确的结果这是我的代码,请查看

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();
}

在这里,通过使用
或_where_in
条件,未选择的
日期
的结果将出现,如果我删除
或_where_in
结果将正确获得。如何编写使用
或_where_in
的正确语法。我编写了
where_in
而不是
或_where_in
,但没有显示任何内容我正在使用codeigniter 3.1.5版本

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


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

有任何建议您想用$get\u all\u user\u id做什么?$user\u id有什么区别?
$get\u all\u user\u id
$user\u id
下的子id,因此当
$get\u all\u user\u id
不是时,
$user\u id
可以为空吗?是的,可以为空
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();
}