私はcodeigntier 3ページネーションライブラリを使用します。コード番号ページネーションが正しく機能しない
これは機能しますが、正確にはどのようにするべきではありません。
最初にコードを投稿します。
コントローラ設定
$config['base_url'] = base_url('items');
$config['total_rows'] = $this->ItemsM->countAll();
$config['per_page'] = 5;
$config['use_page_numbers'] = TRUE;
$config['nex_link'] = "Next";
$limit = $config['per_page'];
$offset = $this->uri->segment(2);
$this->pagination->initialize($config);
$data = array(
'musicians' => $this->ItemsM->allItems($limit, $offset),
'pagination' => $this->pagination->create_links()
);
$this->load->view('public/header');
$this->load->view('public/item-list', $data);
$this->load->view("public/footer");
モデル
ItemsMがCI_MODEL {
function allUsers($limit="", $offset ="")
{
$query = $this->db->select('*')
->from('items')
->limit($limit)
->offset($offset)
->order_by('creation_date', 'desc')
->get();
return $query->result();
}
public function countAll(){
return $this->db->count_all_results('items');
}
ルート
を拡張するクラス210$route['items/(:any)'] = 'items';
このページネーションは機能しますが、結果は正しくありません。最初のページ/タブで
それがこの順
項目1つの
項目2
項目3
項目4
項目5 // OK
が、開いているページ2
との項目を示しこの次の5つの結果が得られます
アイテム3
アイテム4
アイテム5
項目6
項目7
は、正直なところ、私は、問題がどこにあるか、私は誰かが知って理解して助けてくださいません。ありがとうございました。
問題はあなたのSQLクエリであるようです。ページ2または次のページをクリックすると、オフセット2で結果が得られます。ページ番号として '$ offset'を渡していることを意味します。 id 2以降や2件の結果をスキップした後の結果を示しています。右 ? –
ページ2のページ1の3つの結果を繰り返すような感じです。 –
ええ、2ページ目では、最初の2つの結果をスキップしてitem3から開始します。 –