3

我在 Stackoverflow 上看到了一个过滤器示例,我会尝试在我的 codeigniter 上实现它,但是当我单击 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

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 回答