php是目前非常流行的一種編程語言,而ci則是php框架中一個非常實用的應用。隨著互聯網的快速發展,網站上的數據量也越來越大,使得網頁的加載速度變得十分緩慢。而ci分頁則是解決這一問題的重要手段之一。下面我們就來說說php ci分頁。
在講解ci分頁之前,先看下面一段代碼:
```
$sql = "SELECT * FROM user";
$res = mysqli_query($sql);
$total = mysqli_num_rows($res);
$per = 10;
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
if ($page< 1) {
$page = 1;
}
$offset = $per * ($page - 1);
$sql = "SELECT * FROM user LIMIT $offset, $per";
$res = mysqli_query($sql);
while ($row = mysqli_fetch_array($res)) {
// output user rows
}
```
上述代碼是一個簡單的PHP實現分頁的方法,可以看出實現分頁的過程會使代碼變得十分冗長。而ci則可以簡化這一過程。
首先,在CI中,需要在模型(Model)中進行數據查詢。如下所示:
```
public function getUsers($limit, $offset) {
$this->db->from('user');
$this->db->limit($limit, $offset);
$query = $this->db->get();
$result = $query->result_array();
return $result;
}
```
這個函數將限制從數據庫中選擇的選項,從名稱"user"的表中選擇$limit個用戶,并為第$offset個用戶開始選擇。最后將結果轉化為數組并返回。
而在控制器(Controller)中,需要調用此函數,并將返回的結果返回給模板(Template)。如下所示:
```
public function index() {
$this->load->model('user_model', 'user');
$limit = 10;
$page = $this->input->get('page') >0 ? $this->input->get('page') : 1;
$offset = ($page - 1) * $limit;
$data['users'] = $this->user->getUsers($limit, $offset);
$this->load->library('pagination');
$config['base_url'] = base_url('user/index');
$config['total_rows'] = $this->user->totalUsers();
$config['per_page'] = $limit;
$config['num_links'] = 2;
$config['use_page_numbers'] = TRUE;
$config['page_query_string'] = TRUE;
$config['query_string_segment'] = 'page';
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
$this->load->view('user/index', $data);
}
```
在控制器中,需要首先載入模型,并聲明每頁需要顯示多少項,當前的頁數以及當前的偏移量。然后,將這些參數傳遞給我們在模型中創建的分頁器函數。在該函數的返回后,我們需要加載pagination庫,并使用配置數組來設置基本URL和總行數。此外,我們還需要設置每頁多少行,顯示的頁碼鏈接數目以及query_string_segment。
最后,在模板中,需要以類似于下面的方式顯示頁碼:
``````
在以上的模板中,pagination的值是控制器中通過create_links()函數設置的分頁HTML代碼。因此,通過將返回值分配到$data數組中,并在視圖文件中通過echo輸出。
綜上所述,ci分頁的實現十分簡單,并且可以大大地優化整個系統的性能。不僅可以減小服務器的負載,而且可以提高用戶體驗。在進行ci開發時,我們應該熟練地掌握使用分頁的技巧,以使我們的應用更加高效。
網站導航
- zblogPHP模板zbpkf
- zblog免費模板zblogfree
- zblog模板學習zblogxuexi
- zblogPHP仿站zbpfang