分页在做数据管理的时候是必不可少的,亲写亲测有效的php分页代码及原理实例分析。来看下一段简单的代码
//获取php分页代码 public function getPageHtml($currentpage,$totalcount,$pagesize=25,$sql){ //$sql 如: ?name=xxx&tel=123 $pagerange=5; //分页宽度 $totalpage=0; //总页数 // x条记录 << 5 >> 共y页 if($totalcount<=$pagesize){ return "<a class='thispage'>$totalcount 条记录</a>"; } //总页数 if($totalcount%$pagesize==0){ $totalpage=$totalcount/$pagesize; }else{ $totalpage=($totalcount-($totalcount%$pagesize))/$pagesize+1; } $startpage=$currentpage-$pagerange>0?$currentpage-$pagerange:1; $endpage=$currentpage+$pagerange<$totalpage?$currentpage+$pagerange:$totalpage; //头部 $page='<a>'.$totalcount.'条记录</a>'; //首页 if($startpage>1){ if($sql==''){ $page.="<a href='?p=1'>首页</a>"; }else{ $page.="<a href='$sql&p=1'>首页</a>"; } } //当前分页前 for($i=$startpage;$i<$currentpage;$i++){ if($sql==''){ $page.="<a href='?p=$i'>$i</a>"; }else{ $page.="<a href='$sql&p=$i'>$i</a>"; } } //当前分页 $page.='<a class="thispage">'.$currentpage.'</a>'; //当前分页后 for($i=$currentpage+1;$i<=$endpage;$i++){ if($sql==''){ $page.="<a href='?p=$i'>$i</a>"; }else{ $page.="<a href='$sql&p=$i'>$i</a>"; } } //末页 if($endpage<$totalpage){ if($sql==''){ $page.="<a href='?p=$totalpage'>末页</a>"; }else{ $page.="<a href='$sql&p=$totalpage'>末页</a>"; } } //总页数 $page.='<a>共'.$totalpage.'页</a>'; return '<div class="pages">'.$page.'</div>'; }
调用方式
getPageHtml(当前页码,总记录数,分页宽,查询条件);
----------------
这是在最近写了个简单的管理系统中用到的,其中getPageHtml();第三个参数是指分布条跨度,
从当前页数起,减去跨度5等于6,加跨度5等于16,小于6或大于16则显示首页和末页。
整体的现实过程是通过页面完成数据的查询,再将相应的数值传入该方法得到相应的分页条代码。
第四个参数:数据查询条件,如:?userid=5&level=3
这里还分享个获取数据总页数的方法
//获取总分页数(参数:总记录数,每页显示条数) public function getTotalPage($totalcount,$pagesize){ if($totalcount<1){return 0;} if($totalcount%$pagesize==0){ $totalpage=$totalcount/$pagesize; }else{ $totalpage=($totalcount-($totalcount%$pagesize))/$pagesize+1; } return $totalpage; }
以上就是php分页代码及原理实例分析在全部内容,之前还有在php通过pdo实现mysql数据库简单操作一文中提到过没有细讲,有兴趣的朋友可以看一下,是有关pdo操作mysql数据库的