我在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(); ?>
答案 0 :(得分: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');
}
}
多数民众赞成