Codeigniter搜索多个字段

时间:2018-02-18 14:52:13

标签: php activerecord codeigniter-3

我尝试使用两个参数制作search field。一个用于name,另一个用于location。但是我的代码只返回第一个参数的结果。也许有人可以弄清楚出了什么问题。 下面是我的代码。

模式:

public function search_job($keyword, $location){
    $query = $this->db->like('name', $keyword)
                ->like('location', $location)
                ->or_like('description', $keyword)
                ->get('jobs');

    return $query->result_array();
}

控制器:

public function search_job(){
    $location = $this->input->post('location');
    $keyword = $this->input->post('keyword');

    if ($this->input->post('submit')) {
        $this->Job_model->search_job($keyword, $location);
    }
}

1 个答案:

答案 0 :(得分:1)

我认为当没有$keyword传递时,您的查询会搞砸,请尝试以下查询。

代码:

public function search_job($keyword, $location){
    $this->db->select('*');
    $this->db->from('jobs');
    if(!empty($keyword)) {
        $this->db->group_start();
        $this->db->like('name', $keyword);
        $this->db->or_like('description', $keyword);
        $this->db->group_end();
    }
    $this->db->like('location', $location);
    $query = $this->db->get();

    return $query->result_array();
}