天天看點

CodeIgniter架構多條件搜尋查詢分頁功能解決方案

最近在用ci架構寫功能的時候,需要用到分頁功能,本來尋常的資料結果分頁是比較簡單的,但是這次寫的功能是多條件搜尋查詢分頁,就有點難度了,看官方手冊下面評論好多人問,

正常的分頁功能例子是這樣的:

1 $this->load->library(\'pagination\');
2 
3 $config[\'base_url\'] = \'http://example.com/index.php/test/page/\';
4 $config[\'total_rows\'] = 200;
5 $config[\'per_page\'] = 20;
6 
7 $this->pagination->initialize($config);
8 
9 echo $this->pagination->create_links();      

多條件搜尋查詢分頁例子:

1 class Monitors extends CI_Controller {
 2 public function warning(){
 3     $config= array();
 4     $config[\'per_page\'] = 15; //每頁顯示的資料數
 5     $current_page = intval($this->input->get("per_page")); //擷取目前分頁頁碼數
 6     
 7  $status=$this->input->get("filter-status",TRUE);
 8  $level=$this->input->get(\'filter-level\',TRUE);
 9  $timestamp=$this->input->get(\'filter-timestamp\',TRUE);
10  $all = $this->monitors_m->getAllData($current_page,$config[\'per_page\'],$status,$timestamp,$level);
11    //這裡傳回的有總條數和具體的資料,根據自己的情況略加修改即可
12  $data[\'allevent\'] = $all[\'content\'];
13  $config[\'total_rows\']   = $all[\'count\'];//總條數
14     $config[\'num_links\'] = 3;//頁碼連接配接數
15  $config[\'use_page_numbers\'] = TRUE; 
16  $config[\'page_query_strings\'] = TRUE;//關鍵配置
17  $config[\'base_url\'] = base_url().\'index.php/monitors/warning?\'&filter-status=\'.$status.\'&filter-level=\'.$level.\'&filter-timestamp=\'.$timestamp;//關鍵配置
18  $this->load->library(\'pagination\');//加載ci pagination類
19  $this->pagination->initialize($config);
20  $data[\'page\'] = $this->pagination->create_links();//關鍵代碼
21  $this->load->view("monitors_v",$data);
22 }      

需要注意的幾個地方,第一個:

1 $config[\'page_query_strings\'] = TRUE;//關鍵配置      

第二個:

1 $config[\'base_url\'] = base_url().\'index.php/monitors/warning?\'&filter-status=\'.$status.\'&filter-level=\'.$level.\'&filter-timestamp=\'.$timestamp;//關鍵配置      

第三個:

1 $this->pagination->create_links();//關鍵代碼      

第四個:這個是查詢的資料,傳回的需要是分頁的資料,這個要注意,

1 $all = $this->monitors_m->getAllData($current_page,$config[\'per_page\'],$status,$timestamp,$level);      

把這些配置好,基本上就可以了,感謝大家!