分页在做数据管理的时候是必不可少的,亲写亲测有效的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数据库的