Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844

Пагинация в CI

13.03.2011, 04:54. Показов 1326. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста в чем ошибка. Сел изучать CodeIgniter возникла проблема с пагинацией

Контроллер
объявляем
PHP
1
2
    $this->load->library('pagination');
    $this->load->library('pagination_lib');
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public function category($obj_id,$start_from = 0)
    {
        $data = array();
        
            
        //Задаем ограничение числа материалов на страницу
        $limit = 7;
 
        //Считаем общее количество материалов в конкретной категории
        $total = $this->materials_model->count_by($obj_id);
       
        //Настройки (для чего навигация, имя для подстановки к base_url,           всего, ограничение)
        $settings = $this->pagination_lib->get_settings('category',$obj_id,$total,$limit);
 
        //Применяем настройки
        $this->pagination->initialize($settings);        
        
        // Получаем список материалов, разбитый в соответствии с                  настройками
        $data['category_result'] = $this->materials_model->get_by($obj_id,$limit,$start_from);
        
        // Получаем код ссылок постраничной навигации
        $data['page_nav'] = $this->pagination->create_links();
      
        
        // информация о категории
        $data['info'] = $this->all_materials->view_materials_category($obj_id);
 
        //Список категорий
        $data['menu'] = $this->menu->view_menu();
        
        // активная категория
        $data['activ_cat'] = $obj_id;     
        
        //Проверяем категорию на существование
        if($data['info']){
        $this->display_lib->user_page($data,$name='view_materials');}
        else { 
        $data['info'] = $this->all_materials->view_materials_page($page_id='error');
        $this->display_lib->user_page($data,$name='view/error'); }
     
 
    }


Библиотека

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Pagination_lib
{    
 
//id - для чего навигация, name - имя для подстановки к base_url (только для категорий),всего, ограничение)
public function get_settings($id,$name,$total,$limit)
{    
    $config = array();
    $config['total_rows'] = $total;
    $config['per_page'] = $limit;    
    $config['first_link'] = '«Первая';
    $config['last_link'] = 'Последняя»';
    $config['next_link'] = '»';
    $config['prev_link'] = '«';
    
 
 
    
    switch($id)
    {
        // Если навигация для категорий
        case 'category':            
            
            $config['base_url'] = base_url().'/index/category/'.$name;      
            $config['uri_segment'] = 4;
            
            //количество "цифровых" ссылок по бокам от текущей
            $config['num_links'] = 5;             
            
            return $config;            
            break; 
            
    }
}
   
}

Модель


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Materials_model extends Crud
{
 
 
//получает три параметра: id категории, ограничение количества записей, и с какой записи начать
public function get_by($obj_id,$limit)
{
    
    $this->db->order_by('id','desc');
    $this->db->where   ('category',$obj_id);
     
    //ограничиваем запрос к базе двумя параметрами     
    $this->db->limit($limit);       
 
    $query = $this->db->get('materials');
    
    // Возвращает массив с материалами конкретной категории, урезанный в      соответствии с разбивкой pagination
    return $query->result_array();
}
    
 
 
//Подсчет количества материалов в конкретной категории
    public function count_by($obj_id)
    {
        $this->db->where ('category',$obj_id);
        return $this->db->count_all_results('materials');
    }
 
 
}


Все нормально ошибок нет, но к примеру идет 10 строк в базе, я ставлю лимит 5, тоесть должно быть 2 страницы 1,2.

Оно так и есть, но на всех страницах выводится первые 5 статей
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2011, 04:54
Ответы с готовыми решениями:

Обычная пагинация или пагинация на ajax
Всем сеошникам привет! Ребята, создается блог на вордпрессе и встал вопрос о выборе пагинации: обычной < 1 2 3 > или на аяксе, с...

Пагинация
Всем привет, делаю пагинацию всё как-бы ничего работает как задумал, кроме одного момента, на странице работает живой поиск.. Вот с ним...

Пагинация выдает ошибку "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given"
if (isset($_POST)) { $mysqli = new mysqli('localhost', 'ra_tagil', '1234', 'ra_tagil'); $mysqli->set_charset("cp1251");...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2011, 04:54
Помогаю со студенческими работами здесь

Пагинация
Пытаюсь уже второй день разобраться с пагинацией на сайте, все разные ошибки выскакивают... Создал отдельный файл navigation.php. В нем, в...

Пагинация
Есть готовая пагинация(ниже представлен код). Едиснтвенное, что нужно сделать, это перенести строчку. Тоесть, пагинация выглдяит так: ...

Пагинация
Здравствуйте. Помогите кому не трудно сделать переключатель страниц. <?php $ordtype = 'title'; $tb =...

Пагинация
Здравствуйте! Имею код вывода всех зарегистрированных пользователей: <?php include 'header.html'; ?> <table> ...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru