zoukankan      html  css  js  c++  java
  • php+mysql 公共分页类 思想是通过mysql 的 LIMIT 来实现

    $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");

    分页类:

    <?php

    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 = '<div class="pagerInfo">';
            $html .= '<span>总记录:' . $total . '</span>';
            $html .= '<span>当前页:' . $page . '/共' . $pageData['pageCount'] . '页</span>';
            $html .= '<a href="' . str_replace('PAGE', 1, $nextPageUrl) . '" title="首页">首页</a>';
            $html .= '<a href="' . str_replace('PAGE', $pageData['prevPage'], $nextPageUrl) . '" title="上一页">上一页</a>';

            $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.='<strong>1</strong>';
            } else {
                $html.='<a href="' . str_replace('PAGE', 1, $nextPageUrl) . '">1</a>';
            }
            ///////////////////////////////////////
            for ($i = 1; $i <= $o; $i++) {
                if ($n <= 1) {
                    break;
                }//当总页数为1时
                $c = $f + $i; //从第$c开始累加计算
                if ($i == 1 && $c > 2) {
                    $html.='<a>...</a>';
                }
                if ($c == 1) {
                    continue;
                }
                if ($c == $n) {
                    break;
                }
                if ($c == $page) {
                    $html.='<strong>' . $page . '</strong>';
                } else {
                    $html.='<a href="' . str_replace('PAGE', $c, $nextPageUrl) . '">' . $c . '</a>';
                }
                if ($i == $o && $c < $n - 1) {
                    $html.='<a>...</a>';
                }
                if ($i > $n) {
                    break;
                }//当总页数小于页码表长度时 
            }
            if ($page == $n && $n != 1) {
                $html.='<strong>' . $n . '</strong>';
            } else {
                $html.='<a href="' . str_replace('PAGE', $n, $nextPageUrl) . '">' . $n . '</a>';
            }

            $html .= '<a href="' . str_replace('PAGE', $pageData['nextPage'], $nextPageUrl) . '" title="下一页">下一页</a>';
            $html .= '<a href="' . str_replace('PAGE', $pageData['lastPage'], $nextPageUrl) . '" title="末页">末页</a>';
            $html.='<span id=loc>';
            $html.="跳至<select name='topage' size='1' onchange='gotoUrl(\"$nextPageUrl\" , this.value)'>\n";
            for($i=1;$i<=$pageData['pageCount'];$i++){
            if($i==$page) $html.="<option value='$i' selected>$i</option>\n";
            else $html.="<option value='$i'>$i</option>\n";
            }
            $html.="</select>页";
            $html.='</span>';
            $html .= <<<JS
            <script language="javascript" type="text/javascript">
                function gotoUrl(url,pageNum) {
                    var gotoUrl = url.replace("PAGE", pageNum);
                    window.location= gotoUrl;
                }
            </script>
    JS;
            return $html;
        }

    }

  • 相关阅读:
    zTree根据json选中节点,并且设置其他节点不可选
    点击一次按钮,发生多次ajax请求
    sublimeText3 中配置sass环境,并将编译后文件保存到指定文件夹
    MD5加密
    c# Http请求之HttpClient
    xml与object 之间的ORM
    wpf和winform的那点区别
    c# http请求ajax页面
    c# https请求
    python爬虫框架Pyspider初次接触
  • 原文地址:https://www.cnblogs.com/lh460795/p/2873105.html
Copyright © 2011-2022 走看看