Php 按产品表类别id列出的Codeigniter过滤器

Php 按产品表类别id列出的Codeigniter过滤器,php,filter,categories,codeigniter-3,Php,Filter,Categories,Codeigniter 3,我有一段代码,它从数据库中的一个表中提取所有的值,它工作得很好,但是,我不希望所有的产品都显示出来。我想按类别\u id进行筛选。该表的名称称为products。以下是显示所有产品的视图文件: 将一个可选参数传递给 public function index($category_id = false){ 然后将相同的参数传递给模型的方法 $data['products'] = $this->Product_model->get_products($category_id);

我有一段代码,它从数据库中的一个表中提取所有的值,它工作得很好,但是,我不希望所有的产品都显示出来。我想按
类别\u id
进行筛选。该表的名称称为
products
。以下是显示所有产品的视图文件:



将一个可选参数传递给

public function index($category_id = false){
然后将相同的参数传递给模型的方法

$data['products'] = $this->Product_model->get_products($category_id);
在模型中,您将检查id是否为有效值(即正int,然后使用该子句查询DB,否则全部查询)


类似这样,但您应该检查是否传递了integer,但cat id不存在。

显示查询DB的控制器(最终是模型)代码。我已添加了控制器和模型。假设我要使用的caregory_id为“1”我应该在哪里输入这个?现在如何获取产品/索引:从菜单链接或类似的东西?我发布的视图只是基于控制器和模型直接从数据库中绘制数据,例如使用
。这一个绘制标题。在页面的某个地方制作下拉列表,并通过表单将所选的值传递给同一个url。makeif-else阻止是否检查方法中是否有参数,并相应地提供数据。
public function get_products($category_id){
    $this->db->select('*');
    $this->db->from('products');

    if ((int)$category_id > 0) {
        $this->db->where('category_id', $category_id);
    }

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