2016-09-28 15 views
1

私のコードに問題があります。2つのカテゴリでフィルタリングしたいと思います。しかし、私がやった作業では、1つのカテゴリのフィルタだけで動作し、他のカテゴリのフィルタは機能しませんでした。誰も私がこれを解決するのを助けることができますか?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; 
を、この機能を追加
関連する問題