Php Codeigniter搜索函数引发错误

Php Codeigniter搜索函数引发错误,php,codeigniter,search,Php,Codeigniter,Search,我已经编写了一些代码来在CODEIGNITER3框架中进行搜索。当我插入两个或多个单词来搜索输入时,效果非常好,但是,当我只输入一个单词时,就会出现此错误 我怎样才能解决这个问题? 这是我的控制器: function search() { $keyword = strip_tags($this->input->get('searchforcourses')); $keyword = explode(" ", $keyword);

我已经编写了一些代码来在CODEIGNITER3框架中进行搜索。当我插入两个或多个单词来搜索输入时,效果非常好,但是,当我只输入一个单词时,就会出现此错误

我怎样才能解决这个问题? 这是我的控制器:

function search() {
            $keyword = strip_tags($this->input->get('searchforcourses'));
            $keyword = explode(" ", $keyword);

            $data['title'] = 'Bütün Kurslar Burada';
            $data['courses'] = $this->courses_model->courses_search($keyword);


            $this->load->view('templates/header');
            $this->load->view('courses/courses', $data);
            $this->load->view('templates/footer');
        }
这是我的模型:

function courses_search($keyword) {
            $this->db->select('*');
            $this->db->from('courses');
            $this->db->like('title',$keyword[0]);
            $this->db->or_like('title',$keyword[1]);
            $this->db->join('instructors', 'instructors.id = courses.instructor_id', 'left');
            $this->db->join('categories', 'categories.id = courses.category_id', 'left');
            $query = $this->db->get();
            return $query->result_array();
        }

提前谢谢

该错误表示您正试图访问一个不存在的键
1
,您的代码在模型级别上是错误的,您的代码只获取两个关键字,如果用户搜索了三个关键字会怎么样?你只是想忽略他们吗

我建议这样做:

function courses_search($keyword) {
    $this->db->select('*');
    $this->db->from('courses');
    // You should consider limiting the number of keywords to avoid long loops
    // Limits to 20 keywords
    $keyword = array_slice($keyword, 0, 19);
    // You can also limit it in the 3rd parameter of the explode function
    // Loop through the keywords
    forearch($keyword as $key){
        $this->db->or_like('title',$key);
    }
    $this->db->join('instructors', 'instructors.id = courses.instructor_id', 'left');
    $this->db->join('categories', 'categories.id = courses.category_id', 'left');
    $query = $this->db->get();
    return $query->result_array();
}

你如何确定
$keyword
数组包含两个值?@MehdiBounya问题是,我想检查它,但不知道你为什么还要检查数组包含多少值?你为什么不直接循环使用
$关键字
数组,并在循环中使用
或类似的
方法呢?因为我是新手,我不明白你的意思:(你能简单解释一下吗?