3

Stackoverflow でフィルターの例を見たので、コードイグナイターに実装しようとしましたが、[実行] ボタンをクリックしてもフィルター処理されません。それはいつも私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

1 に答える 1

1

モデルの getAllFilterUsers 関数を確認してください。$offset の値は 5 で、$count の値は 0 です。

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

このクエリは常に空のセットを返します。クエリは..

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');
            }           
    }

それでおしまい

于 2012-09-29T18:14:21.290 に答える