Home  >  Article  >  Backend Development  >  PHP universal paging class code_PHP tutorial

PHP universal paging class code_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:04:40802browse

php general paging class code This is a PHP paging code that uses methods. We summarized the special features of various paging codes and wrote a PHP general paging class that is simple to use and easy to understand.

php tutorial general paging class code
This is a PHP paging code that uses methods. We summarized the special features of various paging codes and wrote a PHP general paging class that is simple to use and easy to understand.
*/

class dividepage{//Page divider class
private $total;//The total number of records to be displayed
private $url;//requested url address
private $displaypg;//The number of records displayed on each page, the default is 10 records displayed on each page
private $page;//Current page number
private $lastpg;//The total number of pages, that is, the page number of the last page
private $prepg; //Previous page
private $nextpg;//next page
private $firstcount;//The serial number of the number of records starts from 0
private $startd;//The record number where the number of records starts.
private $stopd;//The record number at the end of the number of records.

//Constructor
public function __construct($url, $total, $displaypg){
$this->url = $url;//Requested url
$this->total = $total;//Total number of records
//if($displaypg == '')
$this->displaypg = $displaypg;//Number of records displayed on each page
$this->initdividepage();//Initialize paging class
//echo ','.$this->displaypg;
}

//Initialize paging class
private function initdividepage(){
//Analyze url
$parse_url = parse_url($this->url);//Interpret url as an array with fixed key-value pairs
$url_query = $parse_url['query'];//Get the query string in the url
if($url_query){//If there is a query string, delete the query field of the current page in the query string, such as: &page=$page or page=$page
ereg('(^|&)page=([0-9]*)', $url_query, $k);
$this->page = $k[2];//Get the value of the current page
$url_query = ereg_replace("(^|&)page=$this->page", '', $url_query);//Delete the query field of the current page in the query string such as: &page=$page or page=$ page
$this->url = str_replace($parse_url['query'], $url_query, $this->url);//Keep other query strings,
$this->page = $this->page ? $this->page : 1;//wIf there is no value for the current page in the query string, set the current page to 1
if($url_query){//If there are other query strings, add the page turning query string in the form of &page=$page
$this->url .= '&page';
}else{//If there is no other query string, add the page turning query string in the form of page=$page
$this->url .= 'page';
}
}else{//If there is no query string, add a page turning query string in the form of ?page=$page after the url
$this->page = 1;
$this->url .= '?page';
}
$this->lastpg = ceil($this->total / $this->displaypg);//Calculate the total number of pages, that is, the page number of the last page
$this->page = min($this->lastpg, $this->page);//If the current page is greater than the total number of pages, the current page is the page number of the last page
$this->prepg = $this->page - 1;//The previous page is the current page minus one www.bKjia.c0m
$this->nextpg = $this->page + 1;//(($this->page == $this->lastpg) ? $this->lastpg : ($this->page + 1));//The next page is the current page plus one. If the current page is the last page, the next page is 0
$this->firstcount = ($this->page - 1) * $this->displaypg;//Calculate the record number of the current page and the number of records, starting from 0.
$this->startd = $this->total ? ($this->firstcount + 1) : 0;//The record start number starts from 1
$this->stopd = min($this->firstcount + $this->displaypg, $this->total);//Record end number
//echo $this->displaypg;
//echo $this->nextpg.'+=+='.$this->lastpg;
}

public function getpageinfo(){//Get the basic information of the current page, such as: display records 1-10, a total of 23 records.
return 'Display page '.$this->startd.'-'.$this->stopd.' records, a total of '.$this->total.' records. ';
}

public function getcommonpagenav(){//Get common paging navigation, such as: Home Page Previous Page Next Page Last Page
$commonnav = '';
if($this->lastpg == 1){//If there is only one page, return to the page-turning navigation, exit, and do not display the next page, previous page, etc. . .
Return $commonnav;
break;
}
$commonnav = 'Homepage';//Set homepage navigation, page=1
if($this->prepg){
$commonnav .= 'Previous page';
}else{
$commonnav .= 'Previous page';
}
if($this->nextpg <= $this->lastpg){
$commonnav .= 'Next page';
}else{
$commonnav .= 'Next page';
}
$commonnav .= 'Last page';/ /Show last page link
return $commonnav;
}

//Get the jump page navigation, such as: page n
public function getjumppagenav(){
//url .'="+this.value'>'."n";
for($i = 1; $i <= $this->lastpg; $i++){
if($i == $this->page){//Set the page number of the current page as the default option
$jumpnav .= ''."n";
}else{
$jumpnav .= ''."n";
}
}
$jumpnav .= 'pages of'.$this->lastpg.'pages';
return $jumpnav;
}

//Get all pagination navigation
public function getallpagenav(){
$temp = $this->getpageinfo().$this->getcommonpagenav().$this->getjumppagenav();
return $temp;
}

//Get the records to be displayed on the current page, within the limited range in the database tutorial, such as 0-9
public function getlimitstr(){
//echo $this->page;
//echo $this->firstcount;

//echo $this->dispalypg;
$temp = $this->firstcount.','.$this->displaypg;
//echo $temp;
return $temp;
}

}

/*
Usage example:

*$result=mysql tutorial_query("select * from tb_pagetest");//Query the data to be displayed from the database
*$total=mysql_num_rows($result);//The total number of queried data
*$pagesize = 5;//Number of records displayed on each page
*$url = $_server['request_uri'];//Requested uri
*
*$dividepageclass = new dividepage($url, $total, $pagesize); //Create a paging class, (the class can be automatically initialized)
*$limitstr = $dividepageclass->getlimitstr();//Get the starting sequence number of the records to be displayed on the current page and the number of records displayed on each page, such as: 0, 5 (display 5 records starting from 0)
*echo $dividepageclass->getallpagenav();//Display all paging navigation bars,
*For example: Display records 11-13, 13 records in total. Home Page Previous Page Next Page Last Page To *Page 1, 3 pages in total
*$sql = 'select * from tb_pagetest limit '.$limitstr;
*$result=mysql_query($sql);//Get the record set to be displayed on the current page from the database, and then display it ok
*For example:
*while($row=mysql_fetch_array($result))
*echo "
".$row[title]." | ".$row[author];

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/630833.htmlTechArticlephp general paging class code This is a php paging code using methods, we have summarized various paging The code is special. It is simple and easy to understand to write a PHP universal paging class. ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn