2017-06-08 10 views
2

私はcodeigniterプロジェクトでページネーションを保持しています。リンクはすべてビューページに表示されます。しかし、私は同じページに私を取得しているクリックした方のリンク... 次は私のコントローラのコード..ですciページネーションはすべてのリンクで同じページを表示します

public function newsletter() 
    { 
     $this->load->library('pagination'); 
     $config = array(); 

     $config["base_url"] = base_url() . "index.php/welcome/newsletter"; 
     $this->load->model('newsletter_model'); 
     $total_row = $this->newsletter_model->record_count(); 
     $config["total_rows"] = $total_row; 
     $config["per_page"] = 1; 
     $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); 
     if($this->uri->segment(3)){ 
     $page = ($this->uri->segment(3)) ; 
     } 
     else{ 
     $page = 1; 
     } 
     $this->load->model('newsletter_model'); 
     $data["results"] =  $this->newsletter_model->fetch_data($config["per_page"], $page); 
     $str_links = $this->pagination->create_links(); 
     $data["links"] = explode('&nbsp;',$str_links); 

     $this->load->model('newsletter_model'); 
     $data['rm_newsletter'] = $this->newsletter_model->get_rm_newsletter();   
     $this->load->view('newsletter/newsletter',$data); 
    } 

次は私の見解コードです:私の中

foreach ($lt_newsletter as $letter) { 
echo $newsletter['nl_newsletter']; } 

<div id="pagination"> 
    <ul class="pagination"> 
     <?php foreach ($links as $link) 
     { 
     echo "<li>". $link."</li>"; 
     } ?> 
    </ul> 
</div> 

そして最後にモデル:私のブラウザで

public function fetch_data($limit, $id) 
    { 
    $this->db->limit($limit); 
    $this->db->where('nl_id', $id); 
    $query = $this->db->get("ins_newsletter"); 
    if ($query->num_rows() > 0) 
    { 
     foreach ($query->result() as $row) 
     { 
     $data[] = $row; 
     } 
    } 
    } 
    public function record_count() 
    { 
    return $this->db->count_all("ins_newsletter"); 
    } 
    public function get_rm_newsletter() 
    { 
     $data = $this->db->query('SELECT nl.* FROM ins_newsletter nl ORDER BY nl.nl_id DESC'); 
     return $data->result_array(); 
    } 

すべてのリンク(1,2,3,4)が明確に示されているが、私はすべてのリンク(1,2,3,4)をクリックした後、それは同じことを示していますすべてのレコードを含むページ。現在のところ、私は自分のデータベースに4つのレコードを持っており、すべてのレコードがリストされています。親切にも、どこが間違っているか教えてください...!前もって感謝します。

+0

したがって、すべてのページのすべてのレコードを取得していますか? – Keynes

+0

はい私はすべてのレコードを表示していますが、ページ番号のオフセットをどこに与えるか分かりません –

+1

ページングのリフレッシャーコースhttps://code.tutsplus.com/tutorials/codeigniter-from-scratch-day-7-pagination--ネット-7023 – Brad

答えて

0

たぶんエラーがモデルであり、私はあなたが

ます$ this-> DB->どこ( 'nl_id'、$ ID)を持っていることを確認します。

が、コントローラ内の関数に次の2つのパラメータ

$データ[ "結果"] =の$ this - > newsletter_model-> fetch_data($の設定[ "PER_PAGE"]、$ページを渡します);

これは、あなたが渡しているページのレコードの数量の1、(変数ではない)、および他のページネーションの値です(など、1,2,3。)

だから、あなたが持っています別のパラメータを追加してwhereを作成します。このlink in pagination does not workを参照してください。他の問題がある場合は教えてください。

関連する問題