php使用mysql数据库分页显示100页,怎么只输出前后5页的超链接,中间的用省略号显示

php使用mysql数据库分页显示100页,怎么只输出前后5页的超链接,中间的用省略号显示
当前问题共有如下(1)个解决方案
  • 阿里服务器租用
    阿里服务器租用

    这个得用程序去判断,根据每页显示的记录条数和记录总数做处理,给你个思路吧。

    function  getTotalPagesStr ( $total ,$maxPageItems ){ 
            $totalPages = 0;
            if ( $total % $maxPageItems == 0 ){
                $totalPages =  $total/$maxPageItems ;
                if ( $totalPages == 0 )
                    $totalPages = 1;
            }
            else{
                $totalPages =  (int)($total/$maxPageItems) + 1 ;
            }
            return '<span>共'.$total.'条记录,'.$totalPages.'页</span>';
        }
        function  getTotalPages ( $total ,$maxPageItems ){ 
            $totalPages = 0;
            
            if ( $total % $maxPageItems == 0 ){
                $totalPages =  $total/$maxPageItems ;
                if ( $totalPages == 0 )
                    $totalPages = 1;
            }
            else{
                $totalPages =  (int)($total/$maxPageItems) + 1 ;
            }
            return $totalPages;
        }
        function getPageUrl ( $page ){
            $url = $_SERVER['PHP_SELF'] ;
            $i = 0;
            $queryStr = '';
            foreach   ($_GET as $key=>$value)  
            {
                 if ($key != 'page'){
                     if ( $i == 0 ) {
                         if ( is_array($value) ){
                             $j = 0;
                             foreach ( $value as $simpleValue ){
                                 if ( $j == 0 ){
                                     $queryStr = $queryStr.'?'.$key.'[]='.$simpleValue;
                                 }
                                 else {
                                     $queryStr = $queryStr.'&'.$key.'[]='.$simpleValue;
                                 }
                                 $j ++ ;
                             }
                         }
                         else {
                             $queryStr = $queryStr.'?'.$key.'='.$value;
                         }
                     }
                     else {
                         if ( is_array($value ) ){
                             foreach ( $value as $simpleValue ){
                                 $queryStr = $queryStr.'&'.$key.'[]='.$simpleValue;
                             }
                         }
                         else {
                             $queryStr = $queryStr.'&'.$key.'='.$value;
                         }
                     }
                     $i ++ ;
                 }
            }
            foreach   ($_POST as $key=>$value)  
            {
                 if ($key != 'page' && $key !='submit'){
                     
                     if ( $i == 0 ) {
                         if ( is_array($value) ){
                             $j = 0;
                             foreach ( $value as $simpleValue ){
                                 if ( $j == 0 ){
                                     $queryStr = $queryStr.'?'.$key.'[]='.$simpleValue;
                                 }
                                 else {
                                     $queryStr = $queryStr.'&'.$key.'[]='.$simpleValue;
                                 }
                                 $j ++ ;
                             }
                         }
                         else {
                             $queryStr = $queryStr.'?'.$key.'='.$value;
                         }
                     }
                     else {
                         if ( is_array($value ) ){
                             foreach ( $value as $simpleValue ){
                                 $queryStr = $queryStr.'&'.$key.'[]='.$simpleValue;
                             }
                         }
                         else {
                             $queryStr = $queryStr.'&'.$key.'='.$value;
                         }
                     }
                     $i ++ ;
                 }
            }
            if ($i != 0 ){
                return $url.$queryStr.'&page='.$page;
            }
            return $url.'?page='.$page;
        }
        function getPageDisplay ( $total ,$maxPageItems , $currentPage , $maxShowPages ,
                $pageSeparator ){
            $totalPages = getTotalPages ( $total ,$maxPageItems );
            $pageDispayStr = '';
            $ppage = 0 ;
            $startPage = 0;
            $endPage = 0;

            if ( $currentPage % $maxShowPages == 0 )
                $ppage = (int) ($currentPage/$maxShowPages) - 1 ;
            else
                $ppage = (int) ($currentPage/$maxShowPages) ;

            $startPage = $ppage * $maxShowPages + 1;
            if ( $totalPages <= ( $ppage + 1 )*$maxShowPages ){
                $endPage = $totalPages;
            }
            else{
                $endPage = ( $ppage + 1 )*$maxShowPages ;
            }
            if ( $totalPages > $maxShowPages ){
                if ( $currentPage == 1 ){
                    $pageDispayStr = $pageDispayStr.'<span>[第一页/上一页]</span>';
                }
                else{
                    $pageDispayStr = $pageDispayStr.'[<a href=\''.getPageUrl (1 ).'\' >第一页</a>/';
                    $pageDispayStr = $pageDispayStr.'<a href=\''.getPageUrl ($currentPage-1 ).'\' >上一页</a>]';
                }
            }
            if ( $startPage == 1 ){
                $pageDispayStr = $pageDispayStr.'<span><</span>';
            }
            else{
                $pageDispayStr = $pageDispayStr.' <a href=\''.getPageUrl ($startPage-1 ).'\' ><<</a> ';
            }
            for ( $i = $startPage ; $i <= $endPage ; $i ++ ){
                if ( $i != $currentPage ){
                    $pageDispayStr = $pageDispayStr.'<a href=\''.getPageUrl ($i ).'\' >'.$i.'</a>';
                    if ( $i != $endPage ){
                      $pageDispayStr = $pageDispayStr.$pageSeparator;
                    }
                    $pageDispayStr = $pageDispayStr.' ';
                }
                else {
                    $pageDispayStr = $pageDispayStr.'<span class="current">'.$i.'</span>' ;
                    if ( $i != $endPage ){
                      $pageDispayStr = $pageDispayStr.$pageSeparator;
                    }
                    $pageDispayStr = $pageDispayStr.' ';
                }
            }
            if ( $endPage == $totalPages ){
                $pageDispayStr = $pageDispayStr.' <span>>></span> ';
            }
            else{
                $pageDispayStr = $pageDispayStr.'<a href=\''.getPageUrl ( $endPage + 1).'\' >>></a> ';
            }
            if ( $totalPages > $maxShowPages ){
                if ( $currentPage == $totalPages ){
                    $pageDispayStr = $pageDispayStr.'<span>[下一页/最后一页]</span>';
                }
                else{
                    $pageDispayStr = $pageDispayStr.'[<a href=\''.getPageUrl ($currentPage + 1  ).'\' >下一页</a>';
                    $pageDispayStr = $pageDispayStr.'/<a href=\''.getPageUrl ( $totalPages ).'\' >最后一页</a>]';
                }
            }
            return getTotalPagesStr ( $total ,$maxPageItems ).$pageDispayStr;
        }
上一篇:navicat for mysql怎么连接数据库
下一篇:网站文件和Mysql数据库文件放在FreeNAS中会不会影响速度