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

如题所述

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

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;
    }

温馨提示:答案为网友推荐,仅供参考
相似回答