2014-09-12 91 views
-1

我在CI中有一個問題,我的分頁。 我的網址爲第一頁:http://example.com/products/page 第二頁:http://example.com/products.page/12比24等+12codeigniter分頁url和顯示問題

控制器:

$config = array(); 
$config["base_url"] = base_url() . "shop/page"; 
$config["total_rows"] = $this->shop_model->products_count(); 
$config["per_page"] = 12; 
$config["uri_segment"] = 3; 
$choice = $config["total_rows"]/$config["per_page"]; 
$config["num_links"] = round($choice); 

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

$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; 
$data['products'] = $this->shop_model-> 
getProducts($config["per_page"], $page); 

,如果我插入和:

$config['use_page_numbers'] = TRUE; 

型號:

function getProducts($limit, $start) 
{ 
    $this->db->select('*'); 
    $this->db->from('products'); 
    $this->db->join('products_img', 'products_img.i_product_id = products.id', 'left'); 
    $this->db->order_by("products.id", "desc"); 
    $this->db->limit($limit, $start); 
    $query = $this->db->get(); 
    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $row) { 
      $data[] = $row; 
     } 
     return $data; 
    } 
    return false; 
} 

它s正確地給我的URL,但它顯示幾乎與第一頁上的相同的產品。

我檢查了這類問題的其他帖子,但我無法解決它。請幫忙!謝謝!

回答

0

限制不關心頁面,它關心的結果入手:

function getProducts($limit, $start) 
{ 
    $this->db->select('*'); 
    $this->db->from('products'); 
    $this->db->join('products_img', 'products_img.i_product_id = products.id', 'left'); 
    $this->db->order_by("products.id", "desc"); 
    $this->db->limit($limit, ($start * $limit)); 
    $query = $this->db->get(); 
    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $row) { 
      $data[] = $row; 
     } 
     return $data; 
    } 
    return false; 
} 

它顯示「幾乎相同」的結果,因爲你只有1或2或3抵消如果頁碼爲1,2或3 ..

上面假設頁面1實際上是0,但是頁面2是1等等等等。那是因爲您默認爲零。如果不是這種情況,您應該進行調整以反映您將頁碼錶示爲的內容。

+0

但我如何改變,使第2頁仍然是第2頁? – 2014-09-12 21:32:03

+1

$默認頁面爲1而不是0 ..然後執行$ this-> db-> limit($ limit,(($ start-1)* $ limit));而不是上面的代碼 – skrilled 2014-09-12 21:33:19

+0

和默認頁面應該更改?在圖書館中找不到... – 2014-09-12 21:47:53