Я хочу построить расширенный запрос в codeigniter

Я хочу построить запрос, вложенный в 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->db->where('ticket','yes'); Надеюсь, я хорошо объяснил.

Привет

1

Решение

Надеюсь, что это поможет вам :

Вместо того, чтобы использовать if else используйте его только с if с empty проверять

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);
1

Другие решения

Других решений пока нет …