【问题标题】:How To Filter Data In Codeigniter如何在 Codeigniter 中过滤数据
【发布时间】:2016-09-28 03:01:33
【问题描述】:

我的代码有问题,我想按 2 个类别进行过滤。但在我所做的工作中,只过滤一个类别可以工作,而用其他类别过滤则不起作用。谁能帮我解决这个问题?

这是我的控制器

public function index($state = null , $category = null)
{
    if (!empty($state)) {
    $this->load->model('M_kegiatan');
    $data['username'] = $this->session->userdata('username');
    $data['kegiatan'] = $this->M_kegiatan->get_status($state);
    $this->load->view('beranda', $data); 
    }else if (!empty($category)) { 
    $this->load->model('M_kegiatan');
    $data['username'] = $this->session->userdata('username');
    $data['kegiatan'] = $this->M_kegiatan->get_kategori($category);
    $this->load->view('beranda', $data);
} else {

    $this->load->model('M_kegiatan');
    $data['username'] = $this->session->userdata('username');
    $data['kegiatan'] = $this->M_kegiatan->get_kegiatan();
    $this->load->view('beranda', $data);
}

这是我的模型:

    public function get_status($status) {
    $this->db->order_by('tanggal','desc');
    $this->db->where('status',$status);
    $query = $this->db->get('kegiatan');

    if ($query->num_rows() > 0) {
        return $query -> result();
    }
}
    public function get_kategori ($kategori) {
    $this->db->order_by('tanggal','desc');
    $this->db->where('kategori',$kategori);
    $query = $this->db->get('kegiatan');

    if ($query->num_rows() > 0) {
        return $query -> result();
    }
}

从这段代码中,只需通过 get_status() 过滤即可,任何人都可以帮助我吗?

【问题讨论】:

    标签: php html codeigniter


    【解决方案1】:

    如果我理解正确,我认为这就是您要寻找的。​​p>

    public function index($state = null, $category = null)
    {
        $this->load->model('M_kegiatan');
        $data['username'] = $this->session->userdata('username');
    
        if (!empty($state) || !empty ($category))
        { 
            $data['kegiatan'] = $this->M_kegiatan->get_filtered($state, $category);
        }
        else 
       {
            $data['kegiatan'] = $this->M_kegiatan->get_kegiatan();
       }
       $this->load->view('beranda', $data);
    }
    

    将此函数添加到模型中

    public function get_filtered ($status, $category) 
    {
       $this->db->order_by('tanggal','desc');
    
       If (!empty($status))
       {
         $this->db->where('status',$status);
       }
    
       If (!empty($category))
       {
          $this->db->where('kategori',$category);
       }
    
       $query = $this->db->get('kegiatan');
       return ($query->num_rows() > 0) ? $query->result() : NULL;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-12
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 2018-06-06
      • 2011-06-16
      相关资源
      最近更新 更多