これは非常に厄介な問題です。コードイグナイターのページネーションが設定されているので、うまくいくと思いましたが、よく見ると、最後のページで以前の結果を引き込んでページを埋めているようです。
たとえば、1 ページあたり 10 個の結果が必要で、14 個の結果があるとします。最初のページには 10 件の結果があり、2 ページ目も同様です。あるべきときは、最初のものは 10 で、2 番目のものは 4 です。1 つの結果を繰り返すだけなら問題ないのですが、前の 6 つの結果をスクロールしなければならないのは面倒です。どんな助けでも大歓迎です。
私のコントローラーには、ページネーションコードがあります
$config = array();
$config["base_url"] = base_url()."myStories/".$id;
$config["total_rows"] = $this->data_model->my_count();
$config["per_page"] = 10;
$config["uri_segment"] = 3;
$config['num_links'] = 2;
$choice = $config["total_rows"] / $config["per_page"];
//$config["num_links"] = round($choice);
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$this->load->view('userStory_view', array(
'query' => $this->data_model->pullMyStories($config['per_page'], $page),
'links' => $this->pagination->create_links(),
'user' => $this->users_model->getUser($this->user->user_id),
));
そして、私のモデルでは、カウントがあり、実際の結果が返されます
public function my_count() {
//This counts all the stories that belong to that author
$author = $this->uri->segment(2);
$this->db->where('author', $author);
$this->db->where(array('approved !=' => 'd'));
$query = $this->db->get('story_tbl');
return $query->num_rows();
}
public function pullMyStories($limit, $start){
//This pulls back all the stories that belong to that author
$this->db->limit($limit, $start);
$this->db->order_by("date", "desc");
$author = $this->uri->segment(2);
$this->db->where(array('approved !=' => 'd'));
$this->db->where('author', $author);
$story = $this->db->get('story_tbl');
return $story->result();
}
私が設定したルートは機能します
$route['myStories/(:any)'] = "story/viewStories/$1";
最初はカウントが間違っていると思っていたのですが、14回カウントしても20回の結果が返ってきました。
詳細については、baseUrl が正しいことを確信しています。.htaccess を変更して index.php を削除し、ルート ファイルを編集してコントローラーを URL から削除しました。ユーザーが覚えやすいようにします。
また、URI セグメントが正しいことも確信しています。それらが正しくない場合、私のページはまったく表示されません。
すべての通常の解決策を試しましたが、何も機能しませんでした。それが、私がここで質問している理由であり、この質問に賞金をかけた理由です。