当输入值为空时,代码点火器搜索返回表中的所有记录

时间:2016-11-28 06:47:17

标签: php sql codeigniter post

搜索结果显示关键字输入为空时的所有记录,如何显示未找到搜索字词的消息?

如果我想添加其他输入值,例如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();
    }

2 个答案:

答案 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 '%%';

它会全部归还。

如果你有一个空关键字,你就不会去数据库,因为你没有什么可以搜索的。