使用codeigniter的多个过滤器,我只需要批准的产品?

我正在使用 codeigniter 进行多次搜索,但所有产品都从数据库中显示。我只需要批准的产品。


当我尝试在产品视图页面中显示时,所有产品都从产品表中显示。


控制器:


public function product()

    {

       $searchText="";

       if($this->input->post('searchText'))

        {

          $searchText = $this->input->post('searchText');

        }

        $like = array(

            'ProductName'=>$searchText

        );

        $orlike = array(

            'CategoryName'=>$searchText,

            'SubCategoryName'=>$searchText,

            'BrandName'=>$searchText

        );

        $where = array{

             'ProductIsActive'=>1,

             'ProductStatus'=>'Approved'

        );

        $jointables = array(

            'categories'=>'CategorySlug=ProductCategory',

            'subcategories'=>'SubCategorySlug=ProductSubCategory',

            'brands'=>'BrandSlug=ProductBrand'

         );


         $data['product']= $this-> 

Custom_model-> getproduct('products',$jointables,$where,$like,$orlike,array()); 

    }

模型:


  function getproduct($primarytable,$jointables,$where,$like,$orlike)

    {

        $this->db->select('*');

        $this->db->from($primarytable);

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

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

        foreach($orlike as $key=>$value)

        {

            if($value!="")

            {

                $this->db->or_like($key,$value,'both');

            }           

        }

        foreach($jointables as $key=>$value)

        {

            $this->db->join($key,$value,'left');

        }       


         $query = $this->db->get();

        if($query->num_rows() > 0)

        {

                $row = $query->result();

                return $row;

        }else{

                return FALSE;

        }

    }


慕标5832272
浏览 81回答 1
1回答

眼眸繁星

事情在您的配置中 - 如果您有需要的字段,则必须对查询进行分组以下应该做的工作你的控制器public function product(){    $searchText="";    if($this->input->post('searchText'))    {        $searchText = $this->input->post('searchText');    }    $arrFilter = [        'like' =>   [            'ProductName' => $searchText        ],        'orlike' => [            'CategoryName' => $searchText,            'SubCategoryName' => $searchText,            'BrandName' => $searchText        ],    ];    $jointables = [        'categories'=>'CategorySlug=ProductCategory',        'subcategories'=>'SubCategorySlug=ProductSubCategory',        'brands'=>'BrandSlug=ProductBrand'    ];    $where = [        'ProductIsActive'=>1,        'ProductStatus'=>'Approved'    ];    $data['product']= $this->Custom_model-> getproduct('products',$jointables,$where,$arrFilter); }你的模型function getproduct($primarytable, $jointables, $where, $arrFilter = []){    $this->db->select('*');    $this->db->from($primarytable);    $this->db->where($where);    if (is_array($arrFilter) && count($arrFilter) > 0)    {        $this->db->group_start();        if (isset($arrFilter['like']))        {            $this->db->like($arrFilter['like']));        }        if (isset($arrFilter['orlike']))        {            $this->db->group_start();            foreach($arrFilter['orlike'] as $key=>$value)            {                if($value!="")                {                    $this->db->or_like($key,$value,'both');                }                       }            $this->db->group_end();        }        $this->db->group_end();    }    foreach($jointables as $key=>$value)    {        $this->db->join($key,$value,'left');    }           $query = $this->db->get();    if($query->num_rows() > 0)    {        $row = $query->result();        return $row;    }    else    {        return FALSE;    }}
打开App,查看更多内容
随时随地看视频慕课网APP