Я реализовал класс разбиения на страницы в своем приложении 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);
}