Codeigniter, отображающий одни и те же записи на разных страницах с использованием класса пагинации - PullRequest
0 голосов
/ 23 января 2020

Я реализовал класс разбиения на страницы в своем приложении codeigniter, но по некоторым причинам он, кажется, не работает должным образом.

Он показывает 7 элементов на странице и в базе данных 18 элементов. По какой-то причине, когда я нажимаю на страницу 2, на ней отображаются те же записи, что и на странице 1, только начиная с третьей записи в базе данных

это мой код

Файл модели

<?php

class Getbrunches extends CI_Model

{

public function __construct() {

   parent::__construct();

}



public function record_count() {

   return $this->db->count_all("brunches");

}



public function fetch_brunches($limit, $start) {



   $query =  $this->db->query("SELECT b.*, host,
 (3959 *
 acos(
 cos( radians( $this->latitude ) ) *
 cos( radians( `latitude` ) ) *
 cos(
  radians( `longitude` ) - radians( $this->longitude )
  ) +
  sin(radians($this->latitude)) *
  sin(radians(`latitude`))
  )
  ) `distance`
  FROM brunches b
  LEFT JOIN hosts ON hosts.id = b.hostid 
  HAVING  `distance` < '$this->distance'  AND approved = '1' LIMIT $start, $limit 
  ");



   if ($query->num_rows() > 0) {

       foreach ($query->result() as $row) {

           $data[] = $row;

       }

       return $data;

   }

   return false;

 }

Контроллер

public function directory() {

$config = array();
$config["base_url"] = base_url() . "brunches/directory";
$config["total_rows"] = $this->Getbrunches->record_count();
$config["per_page"] = 7;
$config["uri_segment"] = 3;





$config['full_tag_open'] = "<ul>";
$config['full_tag_close'] = '</ul>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li ><a class="current-page" href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';



$config['prev_link'] = '<i class="sl sl-icon-arrow-left"></i>';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';


$config['next_link'] = '<i class="sl sl-icon-arrow-right"></i>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';




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

   $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

   $data["brunches"] = $this->Getbrunches->

       fetch_brunches($config["per_page"], $page);


   $data["links"] = $this->pagination->create_links();


$data['seo_title'] = "Find a brunch";




$data['range'] = "100km";
$data['countofbrunches'] = $this->Getbrunches->record_count();
$data['allbrunches'] = $this->Getbrunches->record_count();
$data['mapbrunchescount'] = $this->Getbrunches->record_count();


    $data["links"] = $this->pagination->create_links();






$data['seo_title'] = "Find a brunch";

$this->load->view('brunches/brunches-search', $data);




}
...