Php 我想在codeigniter中构建一个高级查询

Php 我想在codeigniter中构建一个高级查询,php,mysql,codeigniter,codeigniter-3,codeigniter-query-builder,Php,Mysql,Codeigniter,Codeigniter 3,Codeigniter Query Builder,我想构建一个嵌套在codeigniter中的查询 这是我的控制器 public function advancedSearch(){ if (!$this->session->userdata('logged_in')) { redirect('main/login', 'refresh'); } $session_data = $this->session->userdata('logged

我想构建一个嵌套在codeigniter中的查询

这是我的控制器

    public function advancedSearch(){
        if (!$this->session->userdata('logged_in')) {
            redirect('main/login', 'refresh');
        }
        $session_data = $this->session->userdata('logged_in');
        $data['code'] = $session_data['code'];

        $start = $this->input->post('start');
        $end =$this->input->post('end');
        $ticket = $this->input->post('ticket');
        $type =$this->input->post('type');
        $this->db->select('*');
        $this->db->from('table');

        if ($start && $end) {
            $this->db->where('date >=',$start);
            $this->db->where('date <=',$end);
        } else if ($ticket) {
                $this->db->where('ticket','yes');
        } else if ($type) {
            $this->db->where('type',$type);
        }
        $query = $this->db->get();

    if ($query->num_rows() > 0) {
      $data['data'] = $query->result();
    }
//print_r($data);
        $this->load->view('advanced-search',$data);
公共函数高级搜索(){
如果(!$this->session->userdata('logged_in')){
重定向(“主/登录”、“刷新”);
}
$session_data=$this->session->userdata('logged_in');
$data['code']=$session_data['code'];
$start=$this->input->post('start');
$end=$this->input->post('end');
$ticket=$this->input->post('ticket');
$type=$this->input->post('type');
$this->db->select('*');
$this->db->from('table');
如果($start&&$end){
$this->db->where('date>=',$start);

$this->db->where('date希望这对您有所帮助:

不要使用
if-else
仅将
if
空一起使用
检查

if(!empty($start))
{
$this->db->where('date>=',$start);
} 
如果(!空($end))
{

$this->db->where('date我希望我理解您的问题…您是否缺少| | |或&&在if条件下…例如if(!empty($start)和&!empty($end)),这是什么?
if ( ! empty($start)) 
{
  $this->db->where('date >=',$start);
} 
if (! empty($end))
{
  $this->db->where('date <=',$end);
}
if (! empty($ticket)) 
{
  $this->db->where('ticket','yes');
}
if (! empty($type)) 
{
   $this->db->where('type',$type);
}

$query = $this->db->get();

if ($query->num_rows() > 0) 
{
  $data['data'] = $query->result();
}
//print_r($data);
$this->load->view('advanced-search',$data);