问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问哪位大侠能给我解释下PHP分页的原理么,麻烦附上代码加注释,我大部分能看懂,但是有些模糊,谢谢

发布网友 发布时间:2022-08-19 00:38

我来回答

2个回答

热心网友 时间:2023-10-21 05:02

<?php
/*
$recordcount 总数据量
$pernumber 每页显示记录数
$pagelong 显示页码的长度
*/
function showpage($pagecount,$pagelong=5){
if(!isset($_GET['page'])){
$_GET['page']='';
}
if(!isset($p)){
$p='';
}
if($_GET['page']<1||$_GET['page']==""){
$_GET['page']=1;
}
//总页数小于等于页码长度
if($pagecount<=$pagelong){
for($i=1;$i<=$pagecount;$i++){
if($i==$_GET['page']){
$p=$p." <span>$i</span> ";
}
else{
$p =$p." <a href='".get_url($i)."' hidefocus>$i</a> ";
}
}
}
//总页数大于页码长度
else{
//循环页码数
for($i=$_GET['page'];$i<=$_GET['page']+$pagelong-1;$i++){
//判断是否在当前页
if($i==$_GET['page']&&$_GET['page']!=1){
//输出 当前页前面的
for($i=$_GET['page']-5;$i<$_GET['page'];$i++){
if($i>=1){
$p=$p." <a href='".get_url($i)."' hidefocus>$i</a> ";
}
}
$p=$p." <span>$i</span> ";
}
else{
if($i==$_GET['page']){
$p =$p." <span>$i</span> ";
}
else{
$p =$p." <a href='".get_url($i)."' hidefocus>$i</a> ";
}
}
//总页数-当前页码 小于 页码长度
if(($pagecount-$_GET['page'])<=$pagelong){
for($i=$_GET['page']+1;$i<=$pagecount;$i++){
$p=$p." <a href='".get_url($i)."' hidefocus>$i</a> ";
}
break;
}
//当前页大于等于总页数
if($_GET['page']>=$pagecount){
break;
}
}
}
//当前页不是首页

if($_GET['page']!="1"){
$a=$_GET['page']-1;
//if($_GET['page']>4){
$p = " <a href='".get_url(1)."' hidefocus><<</a> <a href='".get_url($a)."' hidefocus><</a> ".$p;
//}
}

//当前页不是尾页

if($_GET['page']<$pagecount){
$a=$_GET['page']+1;
if($_GET['page']<$pagecount-2){
$p = $p." <a href='".get_url($a)."' hidefocus>></a> <a href='".get_url($pagecount)."' hidefocus>>></a> ";
}
else{
$p = $p." <a href='".get_url($a)."' hidefocus>></a> ";
}
}

return $p;
}

//获取分页的URL
function get_url($page){
//默认的
if(empty($_SERVER['QUERY_STRING'])){//empty变量是否为空 $_SERVER['QUERY_STRING'] URL中第一个问号?之后的内容

return $_SERVER['PHP_SELF'].'?page='.$page;//$_SERVER['PHP_SELF'] 当前正在执行脚本的文件名
}
//有分页的
elseif(strpos($_SERVER['QUERY_STRING'],'page')!== false){//strpos获取字符串page首次出现位置(判断是否有参数page)
//有参数
if(strpos($_SERVER['QUERY_STRING'], '&') !== false){//有多个参数
$u = explode('&page', $_SERVER['QUERY_STRING']);
return $_SERVER['PHP_SELF'].'?'.$u[0].'&page='.$page;
}
//无参数的
else{
return $_SERVER['PHP_SELF'] . '?page=' . $page;
}
}
//有参数,无分页的
else{
return $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&page='.$page;
}
}

热心网友 时间:2023-10-21 05:02

function page_1($pagesql,$page=1,$pagesize=15){
$page=(int)$page<1?1:$page;
$query=$this->query($pagesql);
$rscount=$this->num_rows($query);
$url=basename($HTTP_SERVER_VARS['PHP_SELF']).'?'.$_SERVER['QUERY_STRING'];
$url=preg_replace('/[&]?page=[\w]*[&]?/i','',$url);
$pagecount=$rscount%$pagesize==0?$rscount/$pagesize:(int)($rscount/$pagesize)+1;

if($pagecount==0 or $pagecount=="") return;
$pagestr='';
if($page>$pagecount){
echo "<script>location.href='$url&page=$pagecount'</script>";
return;
}
$pagestr="[第".$page."页 共".$pagecount."页 共".$rscount."条记录] [<a href='$url&page=1'>首页</a>] [<a href='$url&page=".($page-1)."'>上页</a>] [<a href='$url&page=".($page+1)."'>下页</a>] [<a href='$url&page=$pagecount'>末页</a>] ";
return $pagestr;
}

我这写在类里面的,不懂的在追问。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...和O3、1H216O和2H218O.下列有关说法正确的是( )A.35Cl和37Cl互称为... ...做环境分析指示物.下列说法中正确的是( )A.1H216O在相同 ...1H、2H、3H,氧也有3钟同位素:16O、17O、18O,那么水的种类最多有... 全身没力气、想睡觉怎么回事 我的乙肝检查单 请帮忙看看 帮忙看看乙肝检查报告 谢谢 万分感谢!好人一生平安 麻烦帮我看看乙肝两对半的结果 五冶集团由哪家控股 我的苹果6手机百度视频播放不了是什么原因? 高一怎么选科历生地 新买的房子是不是与我的八字不合每天都是小病小灾的? 怎么查八字合不合,如何看双方生辰八字合不合?不合的话如何化解? 帮我算算命格与住房是否合? 怎么看自己的八字合不合 怎么看一个楼盘和自己的八字合不合 两只蝴蝶葫芦丝曲全作5,但里边的高音`丨和7怎么吹? 错了吗?刘亦菲如何示范西装大佬的搭配方法? 一瓦是多少毫升 指纹锁怎样更换电池? 胶州火车站到青岛农业大学平度校区怎么乘公交? DEA一般选取多少年的数据 从黄岛(开发区)怎样坐车去平度南村(准确的说是南村 李家庄 滨河北路 这个地方) 急急急!!!西海岸汽车总站(胶南)到平度的长途汽车都有那几趟?时间是什么时候呢? 从胶南分别到平度,即墨,潍坊,在路程上那个距离近…分别多长时间? 胶南到平度要多远 从平度南村到胶南市怎么坐车 胶南到平度有多远 胶南到平度多少公里小时查询,胶南至平度 现在从胶南到平度南村怎样坐车最快 破发是什么意思?可转债破发怎么办 PHP里生成分页的原理和代码。高手帮下忙!MYSQL数据库! 如何理解PHP的分页呢,我觉得PHP的分页很难学。 有没有老师,给讲一下分页的原理和如何理解分页呢。 关于php mysql分页原理 php分页原理!!!为什么数字页码部分不输出。。代码如下 PHP 带省略号的分页程序,原理是什么? 分页程序我已经写出来了,但是那个省略号 算法 和原理没弄懂 爬坡看马力还是扭矩 色谱EPC说明 什么是门罗币挖矿? 葫芦丝高普7、1怎么吹?(筒音作5) 关于感恩老师的古诗有哪些 天津古文化街有磨刀的地方吗 葫芦丝(简音做5)的降7如何吹 电动车丢了物业有没有责任 电动车丢了小区物业有责任吗 在小区里电动车被偷了,物业有责任吗? 葫芦丝筒音作低音5时,怎么吹中音7. MIUI12.5.4带来13项相机优化,小米11 Ultra拍照再次进化 小米11 Ultra拍照对比诺基亚1020,一场相差8年的手机影像霸主之争 百度钱包提现要收取手续费吗 百度钱包跨行转账和提现要手续费吗