разбиение на страницы не изменяет страницу

Я работаю над разбиением на страницы для своего веб-сайта, где я показываю данные из двух таблиц в базе данных, у меня есть разбиение на страницы на моей странице, но доза не ведет себя так, как предполагается, что она ведет свою дозу, не меняя страницы. в настоящее время у меня есть 16 записей, отображаемых на веб-странице и устанавливающих $config['per_page'] = 1; панель разбиения на страницы увеличивается до 16, но доза не перелистывает страницы, все записи отображаются на странице. любая помощь будет оценена здесь, это мой код:

контроллер

  <?php class Result_controller extends CI_Controller{ function getall(){ $this->load->model('result_model'); $data['query'] = $this->result_model->result_getall(); // print_r($data['query']); die(); $this->load->library('pagination'); $config['base_url'] = 'http://localhost/Surva/index.php/result_controller/getall'; $config['total_rows'] = $this->db->get('tblanswers, credentials')->num_rows(); $config['per_page'] = 1; $config['num_links'] = 10; $this->pagination->initialize($config); $data['records'] = $this->db->get('tblanswers, credentials', $config['per_page'], $this->uri->segment(1, 0))->result_array(); $data['pagination'] = $this->pagination->create_links(); $this->load->view('result_view', $data); } } ?> 

Посмотреть

  <div> <table border="1"> <tr> <th>Name</th> <th>Second Name</th> <th>Phone</th> <th>Email</th> <th>Answer</th> <th>Comment</th> </tr> <?php foreach ($query as $row): ?> <tr> <td><?php echo $row->name; ?></td> <td><?php echo $row->second_name; ?></td> <td><?php echo $row->phone; ?></td> <td><?php echo $row->email; ?></td> <td> <?php echo $row->answerA;?> <?php echo $row->answerB;?> <?php echo $row->answerC;?></td> <td><?php echo $row->comment;?><br></td> </tr> <?php endforeach; ?> </table> <?php if (isset($pagination)) { echo $pagination; // echo "<pre>"; var_dump($query); } ?> -  <div> <table border="1"> <tr> <th>Name</th> <th>Second Name</th> <th>Phone</th> <th>Email</th> <th>Answer</th> <th>Comment</th> </tr> <?php foreach ($query as $row): ?> <tr> <td><?php echo $row->name; ?></td> <td><?php echo $row->second_name; ?></td> <td><?php echo $row->phone; ?></td> <td><?php echo $row->email; ?></td> <td> <?php echo $row->answerA;?> <?php echo $row->answerB;?> <?php echo $row->answerC;?></td> <td><?php echo $row->comment;?><br></td> </tr> <?php endforeach; ?> </table> <?php if (isset($pagination)) { echo $pagination; // echo "<pre>"; var_dump($query); } ?> 

модель

 function result_getall(){ return $this->db->select('tblanswers.*,credentials.*') ->from('tblanswers, credentials') ->get() ->result_object(); 

Solutions Collecting From Web of "разбиение на страницы не изменяет страницу"

Запрос не волшебным образом знает, что вам нужно только x количество записей. Codeigniter собирается отображать все, что вы кормите из модели.

 function getall(){ $this->load->model('result_model'); // print_r($data['query']); die(); $this->load->library('pagination'); $config['base_url'] = 'http://localhost/Surva/index.php/result_controller/getall'; $config['total_rows'] = $this->db->get('tblanswers, credentials')->num_rows(); $config['per_page'] = 1; $config['num_links'] = 10; $config['uri_segment'] = 3; //guessing here, but this is where the uri segment you use to change pages goes. if($this->uri->segment('3')) { $offest = $this->uri->segment('3'); } else { $offest = 0; } $data['query'] = $this->result_model->result_getall($config['per_page'],$offset); $this->pagination->initialize($config); $data['records'] = $this->db->get('tblanswers, credentials', $config['per_page'], $this->uri->segment(1, 0))->result_array(); $data['pagination'] = $this->pagination->create_links(); $this->load->view('result_view', $data); } Model: function result_getall($limit=0,$offset=0){ if($limit != 0) { return $this->db->select('tblanswers.*,credentials.*') ->from('tblanswers, credentials') ->limit($limit, $offset) ->get() ->result_object(); } else { return $this->db->select('tblanswers.*,credentials.*') ->from('tblanswers, credentials') ->get() ->result_object(); } 

Обратите внимание, что в контроллере я передаю смещение и страницу на модель, а затем использую их для ограничения возвратов в самой модели.

Вы должны зацикливаться на $ records, а не на $ query. $ query содержит все записи.

Сделайте так

  $this->load->library('pagination'); $limit = 10; $total = $this->legend_model->get_legend_count($language_id); $config['base_url'] = base_url().'legend/index/'; $config['total_rows'] = $total; $config['per_page'] = $limit; $config['uri_segment'] = 3; $config['first_link'] = '<< First'; $config['last_link'] = 'Last >>'; $config['next_link'] = 'Next ' . '&gt;'; $config['prev_link'] = '&lt;' . ' Previous'; $config['num_tag_open'] = '<span class="number">'; $config['num_tag_close'] = '</span>'; $config['cur_tag_open'] = '<span class="current"><a href="#">'; $config['cur_tag_close'] = '</a></span>'; $this->pagination->initialize($config); $data['offset'] = $offset; $data['legends'] = $this->legend_model->get_legend($language_id, $limit, $offset); $this->template->write('title', 'Legend : Manage Legend'); $this->template->write_view('content', 'legend/index', $data); $this->template->render();