CodeIgniter喜欢和哪里

时间:2016-01-11 14:09:03

标签: php mysql codeigniter

我有过滤器状态和搜索,我正在尝试使用此逻辑进行查询

如果我的输入同时包含过滤器状态和搜索

select * from table_name where status = 'Active' AND name like %search% or address like %search%

我想使用状态搜索已过滤的记录,反之亦然,我想状态过滤搜索到的记录

我正在尝试使用此查询,但它似乎不是正确的查询

$this->db->select('*')->from('tbl_users');
$this->db->like('name', $string, "both");
$this->db->or_like('address', $string, "both");
$this->db->where('status', $status);
$this->db->get();

1 个答案:

答案 0 :(得分:0)

您需要指定一些组:

$this->db->select('*')->from('tbl_users')
    ->group_start()
        ->where('status', $status)
        ->or_group_start()
            ->like('name', $string, 'both')
            ->like('address', $string, 'both')
        ->group_end()
    ->group_end()
->get();

请参阅https://codeigniter.com/user_guide/database/query_builder.html#query-grouping