最终效果:
存储数据的数组:
$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:
学号 | 姓名 | 出生日期 |
<?php echo $info[$i]['stu_num']; ?> | <?php echo $info[$i]['name']; ?> | <?php echo $info[$i]['birth_y']."-".$info[$i]['birth_m']."-".$info[$i]['birth_d']; ?> |