0

魅力のように機能するページネーションコードを持つコードイグナイターアプリケーションがあります。ページネーションにより、訪問者はページごとに表示したいレコードの数を選択できます。さて、以下を追加したいと思います。

合計 Z 件のレコードから X から Y までを表示します。

今、Zは簡単です...私はそれを解決しました。どうすればこれを達成できるか教えてもらえますか?

ここに私が持っている機能があります:

  public function displayAllUsers() 
   { 

        if ($this->uri->segment(3) !="") { 
        $limit = $this->uri->segment(3); 
        } else { 
        $limit = 10; 
        } 

        $offset = 4; 
        $offset = $this->uri->segment(4); 
        $this->db->limit($limit, $offset); 
        $data['users'] = $this->backOfficeUsersModel->get();
        $totalresults = $this->db->get('back_office_users')->num_rows();

        $this->session->set_userdata('totalresults', $totalresults);

        //initializing & configuring paging
        $this->load->library('pagination');
        $config['base_url'] = site_url('/backOfficeUsers/displayAllUsers/'.$limit.'/');
        $config['total_rows'] = $totalresults;
        $config['per_page'] = $limit;
        $config['uri_segment'] = 4;
        $config['full_tag_open'] = '<div class="dataTables_paginate paging_bootstrap pagination"><ul>';
        $config['full_tag_close'] = '</ul></div>';
        $config['cur_tag_open'] = '<li><a href=# style="color:#ffffff; background-color:#258BB5;">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';

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

       //....irelevant content.....

    } // end of function displayAllUsers

どんな助けでも大歓迎です。

4

1 に答える 1

1

それほど難しいことではないはずです。実際、ページネーションを理解していれば、X と Y の値を取得する方法は明らかです。

まず、X と Y の差はもちろん$limit- 1 になります。X の値は、変数 に$offset1 を加えた値になります (オフセットは通常、1 ではなく 0 から始まります)。そして、そこから、Y が に等しいことがわかると思います$offset + $limit

$X = $offset + 1;
$Y = $offset + $limit;

最後のページにいる場合は、Y の値が正しいことを確認する必要があります。データベースから取得した合計行数を確認する必要があります。1 ページあたりの制限を下回っている場合は、次に、このようなものに変更します

if (fetched_rows < $limit)
{
    $Y -= ($limit - fetched_rows); 
}
于 2012-10-05T02:35:34.287 に答える