Php 多个和/或条件在Ci中不起作用
我被困在这里,看起来这个查询是正确的,但是我得到了一些不同的结果Php 多个和/或条件在Ci中不起作用,php,sql,codeigniter,mysqli,Php,Sql,Codeigniter,Mysqli,我被困在这里,看起来这个查询是正确的,但是我得到了一些不同的结果 选择'car\u id','picku\u date','picku time','drop\u date','drop\u time','booking\u status','picku seconds','drop\u seconds'` 来自“汽车预订”` 其中“拾取时间”介于1484516700和1484606100之间 或在1484516700和1484606100之间的“下降时间” 和'car_id'='14782'
选择'car\u id','picku\u date','picku time','drop\u date','drop\u time','booking\u status','picku seconds','drop\u seconds'`
来自“汽车预订”`
其中“拾取时间”介于1484516700和1484606100之间
或在1484516700和1484606100之间的“下降时间”
和'car_id'='14782'
和“骑乘状态”!='完成'
和“预订”状态“!=”拒绝'
在这里,我得到汽车,但谁的车的id不是14782,没有汽车在这个id(14782),我得到其他汽车的详细信息
下面是我的代码
$this->db->选择(“车辆id、取车日期、取车时间、取车日期、取车时间、预订状态、取车秒数、取车秒数”);
$this->db->or_其中(“拾取时间在$ps和$ds之间”);
$this->db->or_其中(“在$ps和$ds之间放置_秒”);
$this->db->where('car_id',“14782”);
$query1=$this->db->get_-where(“汽车预订”,数组(“骑乘状态!=”=>“已完成”,“预订状态!=”=>“已取消”,“预订状态!=”=>“已拒绝”));
有人能推荐我吗
多谢各位
$where = "(pickup_seconds BETWEEN '.$ps.' AND '.$ds.' or drop_seconds BETWEEN '.$ps' AND '.$ds.' )";
$query = $this
->db
->select("car_id , pickup_date ,pickup_time ,drop_date,drop_time,booking_status,pickup_seconds,drop_seconds")
->from('car_booking')
->where($where)
->where('car_id' , "14782")
->where('ride_status !=' , "completed")
->where('booking_status !=',"rejected")
->get();
if($query->num_rows()>0)
{
return $query->result(); }
else {
return null;
}
我认为上面的代码是有效的,因为这就是我在我的CodeIgniter项目中在活动记录中实现orwhere条件的方式,因为我没有使用CodeIgniter的orwhere函数获得预期的结果。如果它不起作用,请评论下面的问题。由于Codeigniter 3.0,您可以使用group\u start()和group\u end()。有关查询分组的详细信息 您的示例可以如下所示:
$query = $this->db ->select("car_id , pickup_date ,pickup_time ,drop_date ,drop_time,booking_status,pickup_seconds,drop_seconds");
->where('car_id' , '14782')
->where('ride_status !=' , 'completed')
->where('booking_status !=', 'rejected')
->group_start()
->where("pickup_seconds BETWEEN $ps AND $ds")
->or_where("drop_seconds BETWEEN $ps AND $ds")
->group_end()
->get('car_booking');
return ($query->num_rows() ) ?$query->result():false;
查询看起来不正确,需要在2
或
条件周围使用大括号。不知道如何在CodeIgniter中做到这一点…我也有同样的感觉@jeroenOk,我会尽快通知你,这里有一个小的代码更改,我只返回true,但请记住返回$query->result()