PHP_分页列表展示

最终效果:
图片
存储数据的数组:
$info=array(
        array('name'=>'太一','birth_y'=>'1990','birth_m'=>'01','birth_d'=>'01','stu_num'=>'0150427001','subject'=>'PHP'),

array('name'=>'王二','birth_y'=>'1991','birth_m'=>'02','birth_d'=>'02','stu_num'=>'0150427002','subject'=>'PHP'),

array('name'=>'张三','birth_y'=>'1993','birth_m'=>'03','birth_d'=>'03','stu_num'=>'0150427003','subject'=>'PHP'),

array('name'=>'李四','birth_y'=>'1994','birth_m'=>'04','birth_d'=>'04','stu_num'=>'0150427004','subject'=>'PHP'),

array('name'=>'龙五','birth_y'=>'1995','birth_m'=>'05','birth_d'=>'05','stu_num'=>'0150427005','subject'=>'PHP'),

array('name'=>'六六','birth_y'=>'1996','birth_m'=>'06','birth_d'=>'06','stu_num'=>'0150427006','subject'=>'PHP'),

array('name'=>'柴七','birth_y'=>'1997','birth_m'=>'07','birth_d'=>'07','stu_num'=>'0150427007','subject'=>'PHP'),

array('name'=>'佬八','birth_y'=>'1998','birth_m'=>'08','birth_d'=>'08','stu_num'=>'0150427008','subject'=>'PHP'),

); 
思路:
第一部分:
    首先确定每页要展示几个数据。这里以每页展示3个数据为例。$per_num=3;
    然后获得总的数据数$nums;
    此时,就可以通过上面两个计算出需要多少页来展示所有数据。$total_pages=ceil($nums/$per_num).
第二部分:
    //通过$_GET来接收get数据,这里为page
    $page=isset($_GET['page'])?$_GET['page']:1;        
    //同时因为$page最小不能小于1,最大不能大于第一部分得到的$total_pages.
    //所以通过max(),min()来限制$page
    $page=max($page,1);
    $page=min($page,$total_pages);
第三部分:
    //假设有8个数据。则
    //页数    当前页面起始索引--当前页面结束索引
    //第一页 0--2
    //第二页 3--5
    //第三页 6--7
    //所以
    $start_index=($page-1)*$per_num;
    $end_index=$page*$per_num-1;
    //因为,最后一页可能并不能显示3个数据,所以要修正$end_index。
    //当不足3个数据时,$end_index取最后一个数据的下标,即$nums-1
    $end_index=min($nums-1,$end_index); 

显示部分html:
<table>
        <tr>
            <td>学号</td>
            <td>姓名</td>    
            <td>出生日期</td>
        </tr>
    <!--显示数据要用循环遍历数组,取值-->
    <?php for($i=$start_index;$i<=$end_index;$i++){    ?>
        <tr>
             <td><?php echo $info[$i]['stu_num']; ?></td>
             <td><?php echo $info[$i]['name']; ?></td>
             <td><?php echo $info[$i]['birth_y']."-".$info[$i]['birth_m']."-".$info[$i]['birth_d']; ?></td>
        </tr>
    <?php  }  ?>
</table> 
    
    <!--底部控制栏部分-->
    <a href="?page=1">首页</a>
    <a href="?page=<?php echo ($page-1);  ?>">上一页</a>
    <a href="?page=<?php echo ($page+1); ?>">下一页</a>
    <a href="?page=<?php echo $total_pages; ?>">尾页</a>

转载于:https://my.oschina.net/microlv/blog/866399

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值