我试图为我的网站实现一个搜索框。在我的用户帐户表中,我将这些帐户分为三部分,即房主,管理员和停用用户。我希望搜索功能能够搜索多个列(按用户名,名字,姓氏,地址,名字和姓氏的组合进行搜索)。但是在我的模型中,我的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