//Create paging class
class Page {
private $_all_num;
private $_page_size; //Display several pieces of data per page
private $_page;
private $_all_page;
private $_url;
private $_limit;
private $_sign;
//Interceptor
Public function __get($_key) {
return $this->$_key;
}
Public function __construct($_all_num,$_page_size) {
$this->_all_num = $_all_num;
$this->_page_size = $_page_size;
$this->_all_page = ceil($this->_all_num / $this->_page_size);
$this->_page = $this->setPage();
$this->_url = $this->setUrl();
$this->_limit = 'LIMIT '.($this->_page * $this->_page_size - $this->_page_size).','.$this->_page_size;
}
//Get the current page number
Private function setPage() {
If (!empty($_GET['page']) && $_GET['page'] > 0) {
If ($_GET['page'] <= $this->_all_page) {
return ceil($_GET['page']);
} else {
return $this->_all_page;
}
} else {
return 1;
}
}
//Get address
Private function setUrl() {
$_url = $_SERVER['REQUEST_URI']; if (!empty($_url)) {
$_par_url = parse_url($_url);
if (isset($_par_url['query'])) {
parse_str($_par_url['query'],$_arr);
if (isset($_arr['page'])) {
unset($_arr['page']);
}
if (!empty($_arr)) {
$_http = http_build_query($_arr);
$_end_url = $_par_url['path'] . '?' . $_http;
$this->_sign = '&';
} else {
$_end_url = $_par_url['path'];
$this->_sign = '?';
}
} else {
$_end_url = $_par_url['path'];
$this->_sign = '?';
}
}
return $_end_url;
}
//显示分页
public function numPage() {
$_num = '';
//前面
for ($i=1; $i<$this->_page; $i ) {
if ($i<1) continue;
$_num .= "".$i."";
}
//自己
$_num .= "".$this->_page."";
//后面
for ($i=$this->_page 1; $i<=$this->_all_page; $i ) {
if ($i>$this->_all_page) continue;
$_num .= "".$i."";
}
return $_num;
}
}
?>
大家可以将上面一段代码复制到文本编辑器中这样看的会舒服一点!下面讲一下具体步骤:
1. Create a paging class: class Page {};
2. Get the number of data that needs to be displayed and record it in the Page class. The number of data here is obtained through data. I won’t go into details! Then set the number of data displayed on each page!
3. Get the current page address!
The general meaning of this code is that when your address is followed by ?, then use &page= when clicking on paging; when there is no suffix or only ?page= after your address, then when clicking on paging, use ?page=
4. Get the current page number
The page number here must be an integer, so you can use the ceil function, and pay attention to the user's malicious modification of the address!
4. Make paging elements. Here we just make a simple digital paging. For more complex ones with better user experience, you can expand by yourself!
5. Set the number of queries in the database, which is LIMIT; for example: For example, I now have 10 pieces of data, and set each page to display 5 pieces of data, then
When the user clicks on the first page, LIMIT 0,5
When the user clicks on the second page, LIMIT 5,5
6. Calling of this code:
$_page = new Page(10,5);
$_page->page();
The 10 above is the total number of data, and 5 is the number of data you want to display on each page. $_page->page() is the paging of the page. Just echo it out. Note that you have to add it to the Page class. The $_limit call is put into the database query statement, so that basic php paging comes out!