我正在尝试在codeigniter中获取where()
和or_where()
,以便在其间使用AND
。我想我的查询如下所示。
SELECT fname
FROM users
WHERE is_active = 1 AND (
employee_type = 'graduate' OR employee_type = 'staff' OR employee_type = 'Person Of Interest'
)
这是我目前的代码:
$this->db->select($print_data);
$this->db->from('users');
$this->db->where(array('is_active' => 1));
$where = '';
$this->db->or_where('employee_type', $search_criteria[0]);
for ($i = 1; $i < sizeof($search_criteria); $i++) {
$this->db->or_where('employee_type', $search_criteria[$i]);
}
以下是我正在制作的输出。有人可以帮忙吗?
SELECT fname
FROM users
WHERE is_active = 1 OR employee_type1 = 'graduate' OR employee_type1 = 'staff' OR employee_type1 = 'Person Of Interest'`
答案 0 :(得分:0)
在CI中使用or_where:
$this->db->select($print_data);
$this->db->from('users');
$this->db->where(array('is_active' => 1));
$this->db->where('employee_type', $search_criteria[0]); // CHANGED
for ($i = 1; $i < sizeof($search_criteria); $i++) {
$this->db->or_where('employee_type', $search_criteria[$i]);
}
第二个解决方案:
您也可以where_in
。在这种情况下,从0开始循环:
$arr = array();
for ($i = 0; $i < sizeof($search_criteria); $i++) {
$arr[] = $search_criteria[$i];
}
$this->db->where_in('employee_type', $arr); // CHANGED