数据分页的简单实现法2

说明:
分页显示是通过SQL语句中的limit来实现,下面是我对分页进行简单的封装
下面的代码会用到
http://blog.youkuaiyun.com/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页,则设置下一页为尾页
    $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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值