或者在codeigniter上的组

时间:2013-03-08 07:30:25

标签: php mysql codeigniter

我在codeigniter中有这样的代码

foreach ($where as $k=>$v){
    foreach ($v as $val){
        $this->db->or_where($k, $val);  
    }                   
}

但是,我想要'或者像'

那样的小组
select * from table where id = '1' and (category = 'tekno' OR category ='biologi');

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

如果需要更复杂的where子句分组,我经常会手动构建查询。

$or_where = "";
foreach ($where as $k => $v) {
    foreach ($v as $val) {
        $or_where .= "OR category = '$val' ";
    }                   
}

然后,您可以添加到现有的Active Record查询中:

$this->db->where($or_where);

OR

$this->db->or_where($or_where);

答案 1 :(得分:1)

您可以在此处添加更多内容:

$this->db->where('id', 1);
$this->db->where('(category', 'tekno');
$this->db->or_where('category', 'biologi');
$this->db->where('1=1)');