OR和条件的Php查询生成器
我这样做是为了构建一个查询,并从codeigniter中的“flights”表中获取座位OR和条件的Php查询生成器,php,mysql,codeigniter,query-builder,Php,Mysql,Codeigniter,Query Builder,我这样做是为了构建一个查询,并从codeigniter中的“flights”表中获取座位 $this->load->database(); $this->load->dbforge(); $where = "seatsF>0 OR seatsB>0 OR seatsE>0"; $this->db->where($where); $this->db->where('approved', 1); $query=$this->db
$this->load->database();
$this->load->dbforge();
$where = "seatsF>0 OR seatsB>0 OR seatsE>0";
$this->db->where($where);
$this->db->where('approved', 1);
$query=$this->db->get("Flights");
$result=$query->result_array();
echo $this->db->last_query();
die;
return $result;
我当前在php中由查询生成器生成的查询是
SELECT * FROM `Flights` WHERE `seatsF` >0 OR `seatsB` >0 OR `seatsE` >0 AND `approved` = 1
但结果包含“approved”=0的结果,我猜我的查询所做的是,它得到1个seatsF>0,然后OR短路并返回true,而不是真正检查整个查询。如何通过查询生成器生成这样的查询:-
SELECT * FROM `Flights` WHERE `(seatsF` >0 OR `seatsB` >0 OR `seatsE` >0) AND `approved` = 1
您需要将OR包装在()中
您需要将OR包装在()中
真不敢相信这件事这么简单。非常感谢。真不敢相信这么简单。非常感谢。不,它是不同的,我知道如何做where部分,只是在“()”的事情中感到困惑。不,它是不同的,我知道如何做where部分,只是在“()”的事情中感到困惑。
$where = "(seatsF>0 OR seatsB>0 OR seatsE>0)";