use_page_numbers в классе нумерации страниц кода? - PullRequest
0 голосов
/ 31 марта 2012

У меня проблема с использованием конфигурации config для use_page_numbers со значением true в моем классе разбиения на страницы! Когда я нажимаю на ссылку на странице 2, количество строк, извлекаемых из базы данных, является правильным, но проблема в том, что: первый ряд страницы 2 является третьим рядом первой страницы! Это означает, что страница 2 начинается с той же строки из базы данных, которая была получена на первой странице в третьей строке. например:

Страница 1: 10, 11, 12, 13, 14

Страница 2: 12, 13, 14, 15, 16

и, конечно, страница 3 начинается со второго ряда страницы 2:

Стр. 3: 13, 14, 15, 16, 17

Это код, который у меня есть:

function get_brands_list($options = array())
{
    //Pagination config
    $config['base_url'] = base_url() . 'admin/brands/page/';
    $config['total_rows'] = $this->db->get('mg_brands')->num_rows();
    $config['per_page'] = 5;
    $config['num_links'] = 4;
    $config['uri_segment'] = 4;
    $config['use_page_numbers'] = TRUE;

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

    $offset = $this->uri->segment(4, 0);
    $this->db->order_by('brand_Sort', 'ASC');
    $query = $this->db->get('mg_brands', $config['per_page'], $offset);

    if(isset($options['brand_Id']) || isset($options['brand_Name']))
        return $query->row(0);

    return $query->result();
} 

1 Ответ

2 голосов
/ 31 марта 2012

У вас проблема с вычислением переменной смещения .... Попробуйте это:

$page_num = $this->uri->segment(4, 0);

$offset = ($page_num - 1) * $config['per_page'];
...