您好傢伙我想通過在codeigniter中創建一個Job Search項目來學習CI。我正在嘗試在其中創建多個輸入字段職位搜索引擎。我有三個領域的形式。我的表格低於 Form screenshot
我的控制器代碼是這樣的:
class Search extends CI_Controller{
public function normal(){
$this->form_validation->set_rules('job_keywords', 'Job Keywords', 'required');
if($this->form_validation->run() == FALSE){
$viewdata['main_view'] = 'home';
$this->load->view('layout/main', $viewdata);
}
else{
$search_term = $this->input->post('job_keywords');
$location = $this->input->post('job_location');
$type = $this->input->post('job_type');
$searchdata['search_results'] = $this->search_model->default_search($search_term, $location, $type);
$searchdata['main_view'] = 'search_page';
$this->load->view('layout/main', $searchdata);
}
}
}
我的模式是:
public function default_search($search_term, $location="", $type){
$searchterm = $search_term;
$this->db->like('job_title', $searchterm);
$this->db->or_like('job_description', $search_term);
$this->db->where('type_id', $type);
if($location!= ""){
$this->db->like('location_id', $location);
}
$res = $this->db->get('jobs');
if($res->num_rows() >= 1){
return $res->result();
}
else{
return false;
}
}
我的時候我只是用得到的搜索結果$ this - > $ db-> like()和$ this - > $ db-> or_like(),但是當我使用$ this - > $ db-> where()時,查詢不遵循WHERE子句。當我刪除$ this - > $ db-> or_like()時,它可以正常工作,但不能用兩個like子句。有人可以告訴我我哪裏出錯了。謝謝。
Job table structure with 2 rows of data
還有一兩件事,我在數據庫中比較兩列我的第一場表演。位置字段是可選的。 –
嘗試顯示上次執行的查詢,例如'echo $ this-> db-> last_query();' – KubiRoazhon
我得到這個 - SELECT * FROM'jobs' WHERE'job_title' LIKE'%frontend%'ESCAPE'!'或'job_description' LIKE'%frontend%'ESCAPE'!' AND'type_id' ='pt' –