php mysql 分组 分页_php+mysql 公共分页类

这是一个关于PHP分页类的实现代码,包括URL分析、分页函数以及CSS样式定义。该分页类可以方便地应用于网页数据的分页展示,支持当前页、总页数、上下页和中间页码的显示。通过调用getList方法获取数据,并根据每页条数和当前页计算出起始条数,实现了动态分页效果。
摘要由CSDN通过智能技术生成

$pagesize = 5; //每页条数$page = ($page < 1) ? 1 : $page; $start = ($page - 1) * $pagesize; //起始条数

//信息列表$menulist = $this->CONN->getList("tb_admin_manager", "*", $where,'ORDER BY Fid', "LIMIT $start,$pagesize");

分页类:

class Pager2 {

/**     * 分页时获取参数     * @param type $page     * @return string     */    function urlAnalyze($page) {        $url = $_SERVER['REQUEST_URI'];        $parse_url = parse_url($url);        $url_query = isset($parse_url['query']) ? $parse_url['query'] : '';        if ($url_query) {            if (strpos($url_query, 'page=') === false) {                $url .= '&page=PAGE';            } else {                $url = str_replace('page=' . trim($page), 'page=PAGE', $url);            }        } else {            $url .= '?page=PAGE';        }        return $url;    }

/**     * 分页函数     * @param type $total 总记录数     * @param type $page  当前页     * @param type $pagesize 每页条数     * @param type $showlvtao 中间页面个数 为奇数     * @return type     */    function getPager2($total, $page, $pagesize, $showlvtao) {

$pageData = array();        //分页总数 总记录数/每页条数        $pageData['pageCount'] = ceil($total / $pagesize);        $pageData['pageSize'] = $pagesize;        //$page=min($pageData['pageCount'],$page);

if (0 < $page - 1) {            $pageData['prevPage'] = $page - 1;        } else {            $pageData['prevPage'] = 1;        }        if ($pageData['pageCount'] >= $page + 1) {            $pageData['nextPage'] = $page + 1;        } else {            $pageData['nextPage'] = $page;        }        $pageData['lastPage'] = $pageData['pageCount'];

if ($page > $pageData['pageCount']) {            $page = $pageData['pageCount'];        }        $nextPageUrl = $this->urlAnalyze($page);

$html = '

';        $html .= ' 总记录:' . $total . '';        $html .= ' 当前页:' . $page . '/共' . $pageData['pageCount'] . '页';        $html .= ' 首页';        $html .= ' 上一页';

$o = $showlvtao; //中间页码表总长度,为奇数        $u = ceil($o / 2); //根据$o计算单侧页码宽度$u        $f = $page - $u; //根据当前页$currentPage和单侧宽度$u计算出第一页的起始数字        if ($f < 0) {            $f = 0;        }//当第一页小于0时,赋值为0        $n = $pageData['pageCount']; //总页数,

if ($n < 1) {            $n = 1;        }//当总数小于1时,赋值为1        if ($page == 1) {            $html.='1';        } else {            $html.='1';        }        ///        for ($i = 1; $i <= $o; $i++) {            if ($n <= 1) {                break;            }//当总页数为1时            $c = $f + $i; //从第$c开始累加计算            if ($i == 1 && $c > 2) {                $html.='...';            }            if ($c == 1) {                continue;            }            if ($c == $n) {                break;            }            if ($c == $page) {                $html.='' . $page . '';            } else {                $html.='' . $c . '';            }            if ($i == $o && $c < $n - 1) {                $html.='...';            }            if ($i > $n) {                break;            }//当总页数小于页码表长度时         }        if ($page == $n && $n != 1) {            $html.='' . $n . '';        } else {            $html.='' . $n . '';        }

$html .= '下一页';        $html .= '末页';        $html.='';        $html.="跳至\n";        for($i=1;$i<=$pageData['pageCount'];$i++){        if($i==$page) $html.="$i\n";        else $html.="$i\n";        }        $html.="页";        $html.='';        $html .= <<            function gotoUrl(url,pageNum) {                var gotoUrl = url.replace("PAGE", pageNum);                window.location= gotoUrl;            }        JS;        return $html;    }

}

CSS:

.pagerInfo {display: block;clear: both;text-align:center;height:30px;margin:5px 0px;overflow:hidden;color:#39579E;}.pagerInfo span{display: block;float: left;border:1px solid #6593CF;margin:0px 2px 3px 0px;padding:2px 5px;line-height:20px;text-align:center;height:20px;color:#39579E;}#loc{display: block;float: left;margin:0px 2px 3px 0px;padding:2px 5px;color:#39579E;border:0px;}.pagerInfo a{display: block;float: left;border:1px solid #6593CF;margin:0px 2px;padding:2px 5px;text-align:center;height:20px;line-height:20px;text-decoration: none;color:#39579E;}.pagerInfo a:hover{display: block;float: left;border:1px solid #6593CF;margin:0px 2px;padding:2px 5px;text-align:center;text-decoration:none;line-height:20px;height:20px;background-color:#DDEEFF;color:#39579E;}.pagerInfo strong{display: block;float: left;border:1px solid #6593CF;margin:0px 2px;padding:2px 5px;text-align:center;text-decoration:none;line-height:20px;height:20px;background-color:#DDEEFF;color:#39579E;}.pagerInfo strong a {display: block;float: left;color:#39579E;}.goto {display: block;float: left;border:1px solid #6593CF;width:30px;height:25px;color:#39579E;font-weight:bold;cursor: pointer;background-color:#64B1FF;color:#FFF;}#gotoPage{display: block;float: left;border:1px solid #6593CF;width:40px;height:20px;margin:0px 2px 3px 0px;background-color:#DDEEFF;font-size:14px;font-family:Arial;color:#39579E;font-weight:bold;margin:0px 2px;padding:2px;}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值