Php Codeigniter搜索函数引发错误
我已经编写了一些代码来在CODEIGNITER3框架中进行搜索。当我插入两个或多个单词来搜索输入时,效果非常好,但是,当我只输入一个单词时,就会出现此错误 我怎样才能解决这个问题? 这是我的控制器:Php Codeigniter搜索函数引发错误,php,codeigniter,search,Php,Codeigniter,Search,我已经编写了一些代码来在CODEIGNITER3框架中进行搜索。当我插入两个或多个单词来搜索输入时,效果非常好,但是,当我只输入一个单词时,就会出现此错误 我怎样才能解决这个问题? 这是我的控制器: function search() { $keyword = strip_tags($this->input->get('searchforcourses')); $keyword = explode(" ", $keyword);
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问题是,我想检查它,但不知道你为什么还要检查数组包含多少值?你为什么不直接循环使用$关键字
数组,并在循环中使用或类似的方法呢?因为我是新手,我不明白你的意思:(你能简单解释一下吗?