2016-09-28 96 views
1

我的代碼存在問題,我想按照2類別進行過濾。但在我所做的工作中,只需過濾一個類別即可工作,而用其他類別過濾則無效。任何人都可以幫我解決這個問題?如何在Codeigniter中過濾數據

,這是我的控制器

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過濾()可以工作,任何人都可以幫我嗎?

回答

0

如果我理解正確,我認爲這是你正在尋找的。

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;