2016-11-28 44 views
0

搜索結果顯示關鍵字輸入爲空時的所有記錄,如何顯示說明搜索項未找到的消息?當輸入值爲空時,代碼點火器搜索將返回表中的所有記錄

如果我還想添加另一個輸入值,例如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(); 
    } 

回答

1

嘗試使用笨$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是返回數據空然後它搜索使用默認 For more.....

+0

我試過了,它仍然返回所有條目 –

1

這是因爲你有一個類似的聲明。

所以,如果你寫的,

select * from list where name like '%%';

這將返回所有。

如果你有一個空關鍵字更好,你不去數據庫,因爲你沒有任何東西要搜索。

相關問題