2012-10-25 104 views
0

在stackoverflow上有這麼多的分頁問題,​​但我無法用codeigniter看到它,所以在這裏。Codeigniter分頁鏈接不工作

我們需要看看這些圖片 enter image description here

這裏

enter image description here

這裏

enter image description here

我有表10分的記錄,並且鏈接不工作,這裏是controller/index

$query = $this->m_kategorimaterial->get(); 
    $config['base_url'] = base_url().'index.php/c_kategorimaterial/index/'; 
    $config['total_rows'] = $query->num_rows(); 
    $config['per_page'] = 5; 
    $this->pagination->initialize($config); 
    $data['rows'] = $query->result(); 
    $data['title'] = 'QB Kategori Material'; 
    $this->load->view('menu',$data); 
    $this->load->view('v/vkategorimaterial'); 

,這裏是模型

$this->db->order_by('Kode_Kategori_Material_Jasa','DESC'); 
    $query = $this->db->get('ms_kategori_material'); 
    return $query; 

爲什麼鏈接不工作?我如何解決它?感謝您的StackOverflow

+0

你能告訴我,當你分別在第一頁,第二頁和第三頁時,哪些網址正在生成。 –

+0

對不起,我不明白你的意思,所以我需要做出另一個類似的頁面來顯示第二,第三名單等等? – Cignitor

+0

不,我的意思是請分享完整的網址,當頁面第一次加載時,然後當你點擊第二個鏈接等。 –

回答

1

你在哪裏調用在數據收集查詢偏移?您需要爲查詢提供偏移量,以便知道要獲取哪些記錄。

您還必須將total_rows更改爲第二個查詢,該查詢會查詢整個表中的全部記錄,因爲您的新查詢只會爲一個頁面返回足夠的記錄。

型號:

$this->db->order_by('Kode_Kategori_Material_Jasa','DESC'); 
$query = $this->db->get('ms_kategori_material', $limit, $offset); 
return $query; 

function getRecordCount() { 

$query=$this->db->get('ms_kategori_material'); 
$result = $query->num_rows(); 
return $result; 
} 

控制器:

$config['base_url'] = base_url().'index.php/c_kategorimaterial/index/'; 
$config['total_rows'] = $query->num_rows(); 
$config['per_page'] = 5; 
$this->pagination->initialize($config); 
$query = $this->m_kategorimaterial->get($config['per_page'],$this->uri->segment(3)); 
$data['rows'] = $this->m_kategorimaterial->getRecordCount(); 
$data['title'] = 'QB Kategori Material'; 
$this->load->view('menu',$data); 
$this->load->view('v/vkategorimaterial'); 

好像你可以使用這裏發生了什麼的小解釋。分頁CI(或任何應用程序)至少需要3個變量。

限制 - 我應該顯示每頁有多少條記錄,因此我的查詢會返回多少條記錄。

offset - 查詢開始詢問記錄的位置,CI是uri段進入的位置,它受限制部分控制,所以如果您有8個作爲限制(per_page),則每個查詢會將偏移量遞增8因此,頁面1將從頭開始查詢數據庫中的前8條記錄,頁面2中查找從記錄9開始的前8條記錄等等。

記錄總數 - 這是整個表格中查詢的總匹配記錄。這是應用程序如何確定總共有多少頁以及是否需要第二頁。此查詢沒有限制或偏移,因爲您需要所有匹配的記錄而不是部分返回。

數據的實際分頁由數據庫查詢執行。 CI只是告訴數據庫需要記錄哪些記錄。

希望能幫助你清理一些事情。

+0

然後我將模型轉換爲'$ query = $ this-> db-> get('ms_kategori_material',5,0);'仍然沒有分頁顯示*我正在使用您的控制器* – Cignitor

+0

請給我舉個例子由於分頁鏈接?我有10個關於數據庫的記錄,我想讓它每頁5個記錄,所以分頁會顯示第1頁和第2頁。第一個將顯示從「kkmj010」到「kkmj006」,第二個頁面將顯示從「kkmj005」到「kkmj001」 – Cignitor

+0

編輯答案顯示您的記錄計數,即假設您的模型被稱爲m_kategorimaterial它返回完整記錄,另一個查詢一次返回數據5,CI爲您完成其餘的工作。 –

1

嘗試設置

$config['uri_segment'] = 3; 

以下是完整的信息,你需要>http://codeigniter.com/user_guide/libraries/pagination.html

+0

當我將模型轉換爲'$ query = $ this-> db-> get('ms_kategori_material',2);'並將控制器更改爲$ config ['per_page'] = 5; '分頁沒有顯示 – Cignitor

+0

因爲你正在設置查詢的總行數,正如我所說的,你需要第二個查詢來獲得總行數。嘗試手動將總行數設置爲10 –

+0

編輯答案來解釋這裏發生了什麼,希望能幫助你理解你所缺少的部分。 –