本文主要和大家分享php实现仿百度分页的实例,希望能帮助到大家,我们先来看一下效果图。
基本策略1, 首先要查询总记录数
2, 设置每页显示的数量并计算总页数
3, 增加一个get传值num代表当前访问的是哪一页,如果没有num的get传值,应该设置默认的当前页为第一页!
4, 就拿一个字符串来保存页码链接,这个字符串也叫作页码字符串!
5, 在查询的时候,就应该使用limit子句进行限制(limit子句分页原理)
完成仿百度分页功能分页需求1, 当前页是前3页的时候,显示的初始页$startnum是1,显示的最后一页$endnum是5
2, 当前页是第4页的时候,$startnum为2,$endnum = $startnum +4, 当前页是第5页的时候,$startnum为3,依次类推
3, 页码的起始位置不能超过总页数 $pages – 4;
代码如下:
代码//应该加载视图文件之前和提取帖子的结果集之前进行分页
//以下的代码都和分页相关
//(1)定义当前选中的页码数
$pagenum = isset($_get['num'])?$_get['num']: 1;
//(2)定义每一页显示的记录数
$rowsperpage = 5;
//(3)查询总记录
$sql="select count(*) as sum frompublish";
$result = my_query($sql);
$row = mysql_fetch_assoc($result);
$rowcount = $row['sum'];//得到总记录数
//(4)计算总页数
$pages = ceil($rowcount/$rowsperpage);//得到总页数
//(5)拼凑页码字符串
$strpage = '';//页码字符串
//拼凑出首页
$strpage .= "<ahref='./list_father.php?num=1'>首页</a>";
//拼凑出上一页
$prenum = $pagenum == 1 ? 1 : $pagenum-1;
$strpage .= "<ahref='./list_father.php?num=$prenum'>上一页</a>";
//确定显示的初始页$startnum
if($pagenum<=3){
$startnum= 1;
}else{
$startnum= $pagenum - 2;
}
//确定显示的初始页$startnum的最大值
if($startnum > $pages- 4){
$startnum= $pages-4;
}
//防止页码出现复制
if($startnum<=1){
$startnum=1;
}
//确定显示的最后一页 $endnum
$endnum=$startnum+4;
//防止最后一页越界;
if($endnum>=$pages){
//$endnum=$pagenum;//错误
$endnum=$pages;
}
//拼凑出中间的页码
for($i=$startnum;$i<=$endnum;$i++){
//如果$i刚好是选中的当前页,标红
if($i==$pagenum){
$strpage.= "<a href='./list_father.php?num=$i'><fontcolor='red'>$i</font></a>";
}else{
$strpage.= "<a href='./list_father.php?num=$i'>$i</a>";
}
//$strpage.= "<a href='./list_father.php?num=$i'>$i</a>";
}
/*for($i=1;$i<=$pages;$i++){
$strpage.= "<a href='./list_father.php?num=$i'>$i</a>";
}*/
////拼凑出下一页
$nextnum = $pagenum == $pages ? $pages :$pagenum+1;
$strpage .= "<a href='./list_father.php?num=$nextnum'>下一页</a>";
//拼凑出尾页
$strpage .= "<ahref='./list_father.php?num=$pages'>尾页</a>";
//提取帖子的结果集
$offset = $rowsperpage*($pagenum-1);
$sql="select * from publish left joinuser on pub_owner=user_name order by pub_time desc limit$offset,$rowsperpage";
$result=my_query($sql);//得到了资源结果集
相关推荐:
分享一个javascript仿百度分页函数的示例代码
php数字分页类代码(仿百度分页效果)
jquery实现的仿百度分页足迹效果代码_jquery
以上就是php实现仿百度分页的详细内容。