2011-07-12 20 views
0

當我搜索功能時,不管我找回所搜索到的DB表中的所有條目。Codeigniter LIKE搜索總是返回整個表

這是控制器:

function search() 
{ 
    $this->form_validation->set_rules('company', 'company field', 'required'); 

    $search_text = $this->input->post('name'); 
    $is_ajax = $this->input->post('ajax'); 

    $data['found_companies'] = $this->Company->get_companies_by_name($search_text); 
$data['page_title'] = 'Search'; 

$this->load->view('head', $data); 
    $this->load->view('pages/search', $data); 
$this->load->view('footer'); 
} 

這是模型函數get_companies_by_name其進行搜索:

function get_companies_by_name($name) { 

    $this->db->select('id,name,logo,phone,email,adress,url,contact,contact_phone,biz_id,join_date,user,password'); 
    $this->db->like('name', $name, 'after'); 

$returned = $this->db->get('companies'); 
return $returned; 
} 

,這是顯示搜索視圖部分:

<?php 

validation_errors(); 

    echo form_open("pages/search",$attributes); 
     echo form_input('company',''); 
     echo form_submit('submit','חפש'); 
     echo form_close(); 


     foreach ($found_companies->result() as $company) { ?> 

        <?= img("uploads/thumbs/" . $company->logo);?> 
        <?= $company->id; ?> 
        <?= anchor ("admin/home/$company->id", "$company->name</br>"); ?> 
        <?= $company->phone;?> 
        <?= $company->email;?> 
        <?= $company->adress;?> 
        <?= $company->url;?> 
        <?= $company->contact;?> 
        <?= $company->contact_phone;?> 
        <?= $company->biz_id;?> 
        <?= $company->join_date;?> 
        <?= $company->user;?> 
        <?= $company->password;?> 
        <?= anchor ("bizadmin/del/$company->id", "מחק עסק</br>")." ".anchor ("admin/edit/$company->id", "ערוך עסק</br>")." ".anchor ("admin/editcamp/$campaign_id->id", "ערוך קמפיין</br>"); ?> 
       </br> 

    <? } ?> 

回答

2

嘗試改變

$search_text = $this->input->post('name'); 

$search_text = $this->input->post('company'); 
在功能搜索

()

+0

燁。由於輸入字段與接收端的POST變量不匹配,因此您的搜索文本始終爲空,因此您的查詢始終爲「LIKE'%'」,與所有匹配。 –