如何组合CodeIgniter中的条件和限制

时间:2015-01-12 05:53:23

标签: php codeigniter

我是CI的新手。实际上我想从我的产品表中获取数据。多个where条件,即指定menu_ids,但限制应为1表示我想从每个menu_id中获得一个产品。以下是我的模特,可能是错的。请帮忙。

My Model    

public function home_products(){
            $this->db->select('*');
            $this->db->from('product');
            $this->db->where('menu_id', 51, 52, 53, 54, 55, 56);
            $this->db->where('product_status', 0);
            $this->db->limit('1');
            $query = $this->db->get();
            return $query->result();
        }

3 个答案:

答案 0 :(得分:0)

使用$ this-> db-> where_in(' menu_id',array(51,52,53,54,55,56));到位$ this-> db-> where(' menu_id',51,52,53,54,55,56);

答案 1 :(得分:0)

试一试: -

    $this->db->select('*');
    $this->db->where_in('menu_id', array(51, 52, 53, 54, 55, 56));
    $this->db->where('product_status', 0);
    $this->db->limit(1);

    $query = $this->db->get('product');         
    return $query->result();

有关详细信息,请参阅CI official doc

答案 2 :(得分:0)

添加$this->db->group_by('menu_id');

变化

$this->db->where('menu_id', 51, 52, 53, 54, 55, 56);

$this->db->where_in('menu_id', array(51, 52, 53, 54, 55, 56));

最终守则是这样的:

public function home_products(){
    $this->db->select('*');
    $this->db->from('product');
    $this->db->where_in('menu_id', array(51, 52, 53, 54, 55, 56));
    $this->db->where('product_status', 0);
    $this->db->group_by('menu_id');
    $this->db->limit('6');
    $query = $this->db->get();
    return $query->result();
}