您的位置:首页 > 其它

数据分页的简单实现法2

2017-05-08 17:21 387 查看
说明:

分页显示是通过SQL语句中的limit来实现,下面是我对分页进行简单的封装

下面的代码会用到

http://blog.csdn.net/qq_24188311/article/details/71425214

中的函数

/**
* 功能:分页
* 参数:每页显示数量
* 返回值:返回一个数组,包含首页,上一页页码,下一页页码,最后一页页码,限制条件,实际总页数,总页数
*/
function page($pagesize,$where=null,$table=null,$link=null){
//检查是否有传数据
if(is_null($link)){
$link = $GLOBALS['link'];
}

if(is_null($table)){
$table = $GLOBALS['table'];
}
if(is_null($where)){
$result = dbSelect($link,$table,'count(*) as count');

}else{
$where = where($where);
$result = dbSelect($link,$table,'count(*) as count',$where);
}
if(!$result){
return false;
}
$count = $result[0][0];//数据总量
$pagecount = ceil($count/$pagesize);//实际的总页数
$pagenum = $pagecount<1 ? 1:$pagecount;//总页数,如果分页总数小于1,即没有数据,则设置总页数为1
$page = empty($_GET['page']) ? 1 : $_GET['page'] ;//当前页数,如果没有指定当前页,则默认为首页
$page = $page<1 ? 1 : $page ;//如果页码小于1,则默认为首页
$page = $page>$pagenum ? $pagenum : $page ;//如果页码大于总页数,则默认为最后一个
$prev = $page-1<1 ? 1 : $page-1;//上一页,如果当前页是第1页,则设置上一页为首页
$next = $page+1>$pagenum ? $pagenum : $page+1;//下一页,如果当前页是最后1页,则设置下一页为尾页
9fe9

$limit= ($page-1)*$pagesize.','.$pagesize;//数据库查询的限制条件
$data = ['first'=>1,
'prev'=>$prev,
'next'=>$next,
'last'=>$pagenum,
'limit'=>$limit,
'count'=>$count,
'pagecount'=>$pagecount,
'page'=>$page];
return $data;
}


在查询数据表的时候加上limit限制条件就能获得指定页的内容,在显示数据的后面放上如下代码,就可以实现翻页,具体代码实现按照你自己的变量写,这里只是做个示范

<a href="list.php?page=1">首页 </a>
<a href="list.php?page={$page['prev']}">上一页 </a>
<a href="list.php?page={$page['next']}">下一页 </a>
<a href="list.php?page={$page['last']}">尾页</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: