php - 这个封装的分页函数像变成这种效果 应该怎么改呢?
ringa_lee
ringa_lee 2017-04-10 16:47:23
[PHP讨论组]

我想不把所有的页数都显示出来 只显示五个或者十个页数的效果 我这个代码应该怎么改呢?

<?php
function fenye(){
    global $page,$pagenum;
    echo "<p >";
    echo "<ul id='ul2'>";
    echo '<li>'.$page.'/'.$pagenum.'页|</li>';
           if($page==1){
             echo '<li>首页|</li>';
             echo '<li>上一页|</li>';
           }else{
                echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';
             echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?'.($page-1).'">上一页</a>|</li>';
           }
           echo '<p>';
           echo '<ul id="ul1">';
           for($i=0;$i<$pagenum;$i++){
            echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($i+1).'">'.($i+1).'</a></li>';
            } 
           echo '</ul>';
           echo '</p>';
           if($page==$pagenum){
               echo '<li>|下一页|</li>';
               echo '<li>尾页|</li>';
           }else{
               echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'">下一页</a>|</li>';
               echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'">尾页</a>|</li>';
           }
    echo '</ul>';
    echo '</p>';
    
};
?>
ringa_lee
ringa_lee

ringa_lee

全部回复(3)
怪我咯

<?php
/*

  • 场景:通过每次更新从数据库中调取的数据来不断更新数据。

  • 前提:你在数据库中获取数据的时候不能一次性获取所有的记录

  • 对应的sql语句:select from tb_name limit ($nowpage-1)$display_page,$display_page

  • // $nowpage 当前页

  • // $display_page 要显示多少页

推荐看看慕课网的视频(我就是这样学会的分页):http://www.imooc.com/learn/419
*/
function fenye(){

global $page,$pagenum;
echo "<p >";
echo "<ul id='ul2'>";
echo '<li>'.$page.'/'.$pagenum.'页|</li>';
       if($page==1){
         echo '<li>首页|</li>';
         echo '<li>上一页|</li>';
       }else{
            echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页</a>|</li>';
         echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page-1).'">上一页</a>|</li>';
       }
       echo '<p>';
       echo '<ul id="ul1">';
       $fp=($page-1)*$dp+1; // $dp 你要显示多少页:例如 $dp=3 :首页 上一页 1 2 3 下一页 尾页; 
                            // 又或者 $dp=8:首页 上一页 1 2 3 4 5 6 7 8 下一页 尾页
                            // $fp:表示开始显示的页数
       $ep=$fp+$dp;         // $ep:表示结束显示的页数

       for($i=$fp;$i<=$pagenum;$i++){ // 
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'">'.$i.'</a></li>';
        } 
       echo '</ul>';
       echo '</p>';
       if($page==$pagenum){
           echo '<li>|下一页|</li>';
           echo '<li>尾页|</li>';
       }else{
           echo '<li>|<a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'">下一页</a>|</li>';
           echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$pagenum.'">尾页</a>|</li>';
       }
echo '</ul>';
echo '</p>';

};
?>

阿神

这PHP代码看着也是醉了

阿神

改成下面这样了 每次可以显示5页 但是为什么一开始的时候是从-1页开始的呢

if($pagenum<=5){
        for($i=1;$i<=$pagenum;$i++){ // 
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$i.'">'.$i.'</a></li>';
        } 
       }else{
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page-2).'">'.($page-2).'</a></li>';
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page-1).'">'.($page-1).'</a></li>';
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.$page.'">'.$page.'</a></li>';
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+1).'">'.($page+1).'</a></li>';
        echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'?page='.($page+2).'">'.($page+2).'</a></li>';
       }
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号