我試圖爲我的網站實現一個搜索框。在我的用戶帳戶表中,我將這些帳戶分爲三部分,即房主,管理員和停用用戶。我希望搜索功能能夠搜索多個列(按用戶名,名字,姓氏,地址,名字和姓氏的組合進行搜索)。但是在我的模型中,我的WHERE子句似乎被忽略。在我的search_homeowner函數中,我將結果限制爲只顯示房主,但是我得到的結果顯示了管理員的結果。我似乎無法擁有多個LIKE,所以我嘗試了或者像。這是代碼。多個Like子句Codeigniter
型號:
function search_homeowner($searchquery) {
$this->db->select('*')->from('accounts')->where('role', 0)-> where('isActive', 1);
$this->db->like('firstname',$searchquery,'after');
$this->db->or_like('lastname',$searchquery,'after');
$this->db->or_like('username',$searchquery,'after');
$this->db->or_like('address',$searchquery,'after');
$query = $this->db->get();
if($query->num_rows() > 0) {
return $query->result();
} else {
return $query->result();
}
}
控制器:
function search_homeowner() {
$this->load->model('model_accounts');
$searchquery = $this->input->post('search');
if(isset($searchquery) and !empty($searchquery)) {
$data['users'] = $this->model_accounts->search_homeowner($searchquery);
$data['main_content'] = 'view_adminaccounts';
$data['homeownerlinks']='';
$this->load->view('includes/admin_accounts_template', $data);
} else {
redirect('admin_accounts/homeowner');
}
}
您好感謝您的回答,但是當我按下搜索按鈕,現在它不顯示任何記錄 – coderszx
保持的print_r($這個 - > DB-> last_query); $ query = $ this-> db-> get();這一行,你會得到查詢檢查一次,並在數據庫中執行,一旦你將獲得其中的錯誤是怎麼回事exacty .. – Sona
現在來看,它會顯示'SELECT * FROM「賬戶」 WHERE「角色」 = 0 AND'isActive = 1 AND'firstname'='LIKE'AND'lastname'='LIKE'AND'username'='LIKE'AND'address'='LIKE''。該'$ searchquery'似乎不讀 – coderszx