Разбиение на страницы не работает в моем приложении - CodeIgniter

Мне удалось разработать разбиение на страницы для моей страницы, которая содержит около 25000 записей. Страница разбивается на 100 страниц, но сейчас, когда я нажимаю на ссылку разбиения на страницы, чтобы перейти к следующей странице, она снова приводит меня к первой странице. Но URI в моем браузере показывает per page number как customers/100 . Что я могу сделать неправильно ниже

Контроллер

    $config['base_url'] = base_url() . 'customers/index/';
    $config["total_rows"] = $customers
    $config["per_page"] = 100;
    $config['num_links'] = 10;
    $config["uri_segment"] = 3;

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

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

    $data['items'] = $this->customer->get_customer_all($config["per_page"]);

Модель

public function get_customer_all($limit = null) {
        $this->db->select('*');
        $this->db->from('courses');           

        if($limit!=''){
            $this->db->limit($limit);
         }
        $query  = $this->db->get();

        return ($query) ? $query->result() : false;
    }

Посмотрите руководство о limit(). В настоящее время вы добавляете только ограничение, а не смещение, что означает, что база данных будет возвращать одни и те же записи на всех страницах. Я также рекомендую вам иметь orderBy(). Не полагайтесь на то, что база данных всегда будет возвращать данные, отсортированные таким же образом, если вы явно не зададите порядок сортировки.

M. Eriksson 22.05.2019 16:49
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
1
1
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Почему вы не используете переменную $page? Для частичного получения данных вам нужны как limit, так и offset. limit для подсчета клиентов на странице и offset для понимания, на какой странице вы находитесь.

Поэтому попробуйте изменить запрос на модель следующим образом:

$data['items'] = $this->customer->get_customer_all($config["per_page"], $page);

И обновите модель следующим образом (с некоторыми изменениями):

public function get_customer_all($limit = 0, $offset = 0) {
    return $this->db->select('*')->
                      from('courses')->
                      limit($limit)->
                      offset($offset)->
                      get()->
                      result_array();
}

Другие вопросы по теме