2017-07-15 92 views
1

你好,我正在嘗試使用Code Igniter中的分頁進行搜索,它的第一頁正常工作,但是當用戶嘗試點擊到下一頁的鏈接時,它顯示的分頁數大於實際搜索結果。加上數據顯示不正確。在codeigniter中使用分頁搜索

我的控制器:

public function search() { 
    try { 

     $data = new stdClass(); 

     $name = $this->input->post('name'); 

     $config["base_url"] = base_url() . "gadmin_user/search"; 
     $config["total_rows"] = $this->Gadmin_model->search_count($name); 
     $config["per_page"] = 10; 
     $config["uri_segment"] = 3; 
     $choice = $config["total_rows"]/$config["per_page"]; 
     $config["num_links"] = round($choice); 
     $config['full_tag_open'] = '<ul class="pagination">'; 
     $config['full_tag_close'] = '</ul>'; 
     $config['cur_tag_open'] = '<li class="active"><a href="#">'; 
     $config['cur_tag_close'] = '</a></li>'; 
     $config['num_tag_open'] = '<li>'; 
     $config['num_tag_close'] = '</li>'; 
     $config['prev_link'] = '<li>&lt;'; 
     $config['next_tag_open'] = '<li>'; 


     $this->pagination->initialize($config); 

     $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
     $data->users = $this->Gadmin_model->serach_by_user($name,$config["per_page"], $page); 
     $data->links = $this->pagination->create_links(); 

     $this->load->view('gadmin/templates/header'); 
     $this->load->view('gadmin/user/search', $data); 
     $this->load->view('gadmin/templates/footer'); 

    } catch (Exception $e) { 
     show_error($e->getMessage() . ' --- ' . $e->getTraceAsString()); 
    } 
} 

我的模型:

public function search_count($keyword){ 


    $q = $this->db->select('*') 
         ->from('users') 
         ->where("name LIKE '%$keyword%'") 
         ->get(); 

    return $q -> num_rows(); 

} 


public function serach_by_user($keyword,$start, $limit){ 

    $search = $this->db->select('*') 
         ->from('users') 
         ->where("name LIKE '%$keyword%'") 
         ->limit($start, $limit) 
         ->get(); 

    if($search->num_rows() > 0){ 
     return $search->result(); 
    }else{ 
     return false; 
    } 

} 

回答

1

要得到限制開始使用,並且限制爲$配置[ 「per_page」]

$c=1; 
     if($page){ 
      $c = $page; 
      $limit_start = $limit * ($c - 1); 
     }