2012-08-24 4 views
3

여기 Stackoverflow에서 필터 예제를 보았습니다. 코드 닉 타이타 (columnigniter)에 구현하려고했으나 go 버튼을 클릭해도 필터링되지 않습니다. 그것은 항상 내게 no user found 무엇이 문제입니까?드롭 다운 필터가 작동하지 않습니다.

컨트롤러

public function filter($page=0,$offset=5,$search=''){ 

     $user = $this->session->userdata('user_id'); 
     $position = $this->session->userdata('user_position'); 



     if($position =='admin'){ 

      $search = $this->input->post('search'); 
      $row = $this->m_user->getAllFilterUsers($offset,$page,$search); 
      $data['usersTable'] = $row->result(); 
      $data['pagination'] = $this->m_user->getUsersFilterPages($search); 
      $data['offset'] = $offset; 
      $data['page'] = $page; 
      $data['search'] = $search; 
      $data['title'] = 'Manage Users'; 
      $this->load->view('vadminuserfilter',$data); 


     } 
     else{ 
      $this->session->set_flashdata('error','Page Not Found.'); 
      redirect('cuser/displayClientPage'); 
      return; 
     } 



    } 

모델

public function getAllFilterUsers($offset,$count,$search){ 

     if($search!=''){ 
      $this->db->where('user_position','client'); 
      $this->db->where('user_status',$search); 
     } 
         $this->db->where('user_position','client'); 
         $this->db->where('user_status','active'); 
         $this->db->order_by('user_id', 'desc'); 
      $UsersQuery = $this->db->get('tb_user',$offset,$count); 

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

      else{ 



       $this->session->set_flashdata('message','No User Found'); 
       redirect('cuser/filter','refresh'); 
      }   
    } 


    public function getUsersFilterPages($search){ 

     $this->db->where('user_position','client'); 
     $this->db->where('user_status',$search); 
     $Pagesquery = $this->db->get('tb_user'); 
      $config['base_url'] = site_url('cuser/filter'); 
      $config['total_rows']= $Pagesquery->num_rows(); 
      $config['per_page'] = 5; 

      $config['first_link'] = 'First'; 
      $config['prev_link'] = 'Previous'; 
      $config['next_link'] = 'Next'; 
      $config['last_link'] = 'Last'; 
      $this->pagination->initialize($config); 


    return $this->pagination->create_links(); 

    } 

보기

<?php echo form_open('cuser/filter'); ?> 
Filter By: 
<?php $dropdown = array('active'=>'active','inactive'=>'inactive');?> 
<?php echo form_dropdown('search', $dropdown); ?> 
<input name="Submit" type="submit" class="button" <?php echo form_submit('submit','Go');?> 
<?php echo form_close(); ?> 
+4

나던 작업 제목입니다. 아니, 코드를 디버그하지 않습니다. 먼저 오류의 원인을 찾으십시오. 또한 어디서나 오류 검사를하고 있습니까? – hakre

+0

메서드에 필요한 매개 변수가 있는지 확인하는 것이 좋습니다. @hakra가 말했듯이, 우리는 코드를 디버그하지 않기 때문에 해결책을 찾기 위해 오류가 필요합니다. =) – Gerep

답변

1

그냥 모델의 getAllFilterUsers 기능을 확인하십시오.

this->db->where('user_position','client'); 
$this->db->where('user_status','active'); 
$this->db->order_by('user_id', 'desc'); 
$UsersQuery = $this->db->get('tb_user',$offset,$count); 

의미 ..

Select * from tb_user where user_position = 'client' and 'user_status' = 'active' order by user_id desc limit 5,0 

이 쿼리는 항상 빈 집합을 반환 .. 오프셋 $의 값은 5와 $ 계수의 값은 0 입니다 그러나 사용 귀하의 질의는해야한다 ..

Select * from tb_user where user_position = 'client' and 'user_status' = 'active' order by user_id desc limit 0,5 

따라서, 귀하의 코드는해야

this->db->where('user_position','client'); 
$this->db->where('user_status','active'); 
$this->db->order_by('user_id', 'desc'); 
$UsersQuery = $this->db->get('tb_user',$count,$offset); 

마지막 함수는 ...

public function getAllFilterUsers($offset,$count,$search){ 

     if($search!=''){ 
      $this->db->where('user_position','client'); 
      $this->db->where('user_status',$search); 
     } 
         this->db->where('user_position','client'); 
         $this->db->where('user_status','active'); 
         $this->db->order_by('user_id', 'desc'); 
      $UsersQuery = $this->db->get('tb_user',$count,$offset); 

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

      else{ 



       $this->session->set_flashdata('message','No User Found'); 
       redirect('cuser/filter','refresh'); 
      }   
    } 

그게 질문이

관련 문제