搜索结果显示关键字输入为空时的所有记录,如何显示未找到搜索字词的消息?
如果我想添加其他输入值,例如input-> post('date'),该怎么办?
控制器:
$keywords = $this->input->post('keywords');
$data['results'] = $this->search_model->get_results($keywords );
$this->template->show('results',$data);
型号:
function get_results($keywords = 'default'){
$query = $this->db->select('*')->from('list')
->where("name LIKE '%$keywords%'")->get();
return $query->result_array();
}
答案 0 :(得分:1)
尝试使用codeigniter $this->db->like
方法。
如果您的$keyward
为空,请尝试此操作...
$keywords = $this->input->post('keywords');
if(!empty($keywords)){
$data['results'] = $this->search_model->get_results($keywords );
}else{
$data['result']="not found";
}
$this->template->show('results',$data);
或
function get_results($keywords = null){
if(!$keywords){
return false;
}
$query = $this->db->select('*')->from('list')->like("name",$keywords)->get();
return $query->result_array();
}
每次您的查询都会运行并返回数据,因为您传递$ keyword ='default',因此如果$keyword
为空,则使用默认进行搜索
For more.....
答案 1 :(得分:1)
这是因为你有一个相似的陈述。
所以,如果你写,
select * from list where name like '%%';
它会全部归还。
如果你有一个空关键字,你就不会去数据库,因为你没有什么可以搜索的。