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