2016-11-28 3 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方法CodeIgniterの使用してみてください。 $keywordがあるので、もしあなたが=「デフォルト」$キーワードを渡すので、あなたの$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(); 
} 

たびに試してみて、データを返し、その後空の場合空の場合はデフォルトを使用して検索します For more.....

+0

私はこれを試みましたが、それでもすべてのエントリを返します –

1

同じような声明があります。だから、

あなたが書く場合、

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

それはすべてを返します。

あなたが空のキーワードを持っていれば、あなたは検索するものがないので、データベースには出られません。

関連する問題