2012-03-31 71 views
0

我在使用use_page_numbers配置在我的分頁類中爲true時出現問題! 當我點擊第2頁的鏈接時,它從數據庫中檢索到的行數是正確的,但問題是: 第2頁的第一行是第一頁的第三行!這意味着頁面2從數據庫的同一行開始,該行在第三行的第一頁中已經被檢索到。例如:codeigniter分頁類中的use_page_numbers?

頁1:10,11,12,13,14

第2頁:12,13,14,15,16

當然頁面和3點從第二行開始

第3頁::第2頁第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(); 
} 

回答

2

你有一個計算偏移量變量的問題....試試這個:

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

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

使用這個,其他頁面的問題已經解決了,但是第一頁。 我收到了錯誤回到第一頁: 錯誤號:1064 您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以在第4行'-5,5'附近使用正確的語法。 SELECT * FROM('mg_brands')ORDER BY ABS(brand_Sort)ASC LIMIT -5,5 – Afshin 2012-03-31 11:29:11

+0

第一頁設置你的值爲1不是0. – 2012-03-31 11:30:15

+0

謝謝!它現在工作正常:) – Afshin 2012-03-31 11:32:54