2016-09-27 24 views
0

私のコントローラを動作していない: -CodeIgniterのページネーションは正しく

public function index($id,$page=0) { 

    $config = array(); 
    $config["base_url"] = base_url() . "index.php/categorypage/index/".$id."/"; 
    $total_row = $this->Categorymodel->record_count($id); 
    $config["total_rows"] = $total_row; 
    $config["per_page"] = 20; 
    $config['use_page_numbers'] = TRUE; 
    $config['num_links'] = $total_row; 
    $config['cur_tag_open'] = '&nbsp;<a class="current">'; 
    $config['cur_tag_close'] = '</a>'; 
    $config['next_link'] = 'Next'; 
    $config['prev_link'] = 'Previous'; 
    $this->pagination->initialize($config); 
    $page = $this->uri->segment(3) ; 

    $data["results"] = $this->Categorymodel->fetch_data($config["per_page"], $page,$id); 
    $str_links = $this->pagination->create_links(); 
    $data["links"] = explode('&nbsp;',$str_links); 

    $this->load->view('frontend/template/other_head'); 
    $this->load->view('frontend/template/category_nav'); 
    $this->load->view('frontend/category_content',$data); 
    $this->load->view('frontend/template/footer'); 
} 

マイモデル

class Categorymodel extends CI_Model { 

    // Count all record of table "contact_info" in database. 
    public function record_count($catid) { 

     //$this->db->where('cat_id',$catid); 
     $query = $this->db->get("tbl_product"); 
     return $query->num_rows(); 

    } 

    // Fetch data according to per_page limit. 
    public function fetch_data($limit,$page, $pageid) { 

     $this->db->limit(12,$limit); 
     $this->db->where('cat_id', $pageid); 
     $query = $this->db->get("tbl_product"); 
     //echo $this->db->last_query();exit; 
     if ($query->num_rows() > 0) { 
      foreach ($query->result() as $row) { 
       $data[] = $row; 
      } 

      return $data; 
     } 
     return false; 
    } 
} 

は、私が "オフセット" 値を得ることができない、と改ページのURLではありません他の値をフェッチする。この問題を解決するのを手伝ってください。あなたは、ページ番号に使用するセグメント

$this->db->limit(12,$limit); 

が限度であるべき($リミット、$ページ)

+0

まず、インデックス関数 'base_url()を含める必要はありません。 "index.php/categorypage/index /" .$ id。 "/"; 'はbase_url()に変更されます。 "index.php/categorypage /" .$ id。 "/"; '次にベースURLを設定し、いくつかのルートを設定する必要があります。http://www.codeigniter.com/user_guide/general/routing.html#examples – user4419336

+0

また、いくつかの行を節約でき、$ rowを新しい配列に置くことはできません: 'return $ query-> result_array();' – cssBlaster21895

答えて

0

は、あなたがここにバグを持っているように思えます。

$config['uri_segment'] = 4; 

と同様の方法でクエリのオフセットを計算:

$offset = (
     $this->uri->segment($config['uri_segment']) - 1 
    ) * $config['per_page']; 
    $offset < 0 ? $offset = 0 : ''; 

そして誰かのよう$this->db->limit($limit, $offset)の2番目のパラメータがオフセットされ、前に言いました。

0

あなたが言うことができるCI:

+0

Okeyありがとうございました –

関連する問題