Home >Backend Development >PHP Tutorial >PHP pagination code_PHP tutorial
php tutorial paging code
//In order to avoid errors caused by repeated inclusion of files, a condition for determining whether the function exists:
$page = $_get[page];
if(!function_exists(pageft)){
//Define the function pageft(), the meaning of the three parameters is:
//$totle: total number of messages;
//$displaypg: The number of information displayed on each page, the default setting here is 20;
//$url: The link in the paging navigation is the same as this URL except for adding different query information "page".
//The default value should be set to the URL of this page (i.e. $_server["request_uri"]), but the right side of the default value can only be a constant, so the default value is set to an empty string, and then set to this value inside the function. page url.
function pageft($totle,$displaypg=20,$url=''){//Define several global variables:
//$page: current page number;
//$firstcount: (database tutorial) starting item of query;
//$pagenav: page navigation bar code, it is not output inside the function;
//$_server: necessary to read the url "$_server["request_uri"]" of this page.
global $page,$firstcount,$pagenav,$_server;//In order to make "$displaypg" here accessible from outside the function, set it as a global variable. Note that after a variable is redefined as a global variable, the original value is overwritten, so it is reassigned here.
$globals["displaypg"]=$displaypg;if(!$page) $page=1;
//If $url uses the default value, which is an empty value, the assigned value is the url of this page:
if(!$url){ $url=$_server["request_uri"];}//url analysis:
$parse_url=parse_url($url);
$url_query=$parse_url["query"]; //Get the query string of url separately
if($url_query){
//Because the url may contain page number information, we need to remove it in order to add new page number information.
//Regular expressions are used here, please refer to "Regular Expressions in PHP"
$url_query=preg_replace("/(^|&)page=$page/","",$url_query);//Replace the query string of the processed url with the query string of the original url:
$url=str_replace($parse_url["query"],$url_query,$url);//Add page query information after the url, but wait for assignment:
if($url_query) $url.="&page"; else $url.="page";
}else {
$url.="?page";
}//Page number calculation:
$lastpg=ceil($totle/$displaypg); //The last page is also the total number of pages
$page=min($lastpg,$page);
$prepg=$page-1; //Previous page
$nextpg=($page==$lastpg ? 0 : $page+1); //Next page
$firstcount=($page-1)*$displaypg;//Start paging navigation bar code:
$pagenav="Display number ".($totle?($firstcount+1):0)."-".min($firstcount+$displaypg,$totle). " records, $totle records in total";//If there is only one page, jump out of the function:
if($lastpg<=1) return false;$pagenav.=" Homepage ";
if($prepg) $pagenav.=" Previous page "; else $pagenav.=" Previous page ";
if($nextpg) $pagenav.=" Next page "; else $pagenav.=" Next page ";
$pagenav.=" Last page ";//Pull down the jump list and list all page numbers in a loop:
$pagenav.="Go to page page of $lastpg";
}
}