php 数组分页显示

<?php$arr_click=array(array('clicks'=>8,'clickDate'=>'2010-10-13'),array('clicks'=>7,... <?php $arr_click = array( array( 'clicks' => 8, 'clickDate' =>'2010-10-13' ), array( 'clicks' => 7, 'clickDate' =>'2010-10-12' ), array( 'clicks' => 6, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 5, 'clickDate' =>'2010-10-13' ), array( 'clicks' => 4, 'clickDate' =>'2010-10-12' ), array( 'clicks' => 3, 'clickDate' =>'2010-10-11' ), array( 'clicks' => 2, 'clickDate' =>'2010-10-10' ), array( 'clicks' => 1, 'clickDate' =>'2010-10-09' ), array( 'clicks' => 0, 'clickDate' =>'2010-10-08' ), ); $size = 3; $pnum = ceil(count($arr_click) / $size); if(isset($_GET['page'])){ $page = intval($_GET['page']); $page = $page > $pnum? $pnum: $page; }else{ $page = 1; } $page = empty($_GET['page']) ? '1' : $_GET['page']; for($i=($page-1)*$size;$i<$page*$size;$i++) { if(!isset($arr_click[($page - 1) * $size + $i]))break; $arr = $arr_click[($page - 1) * $size + $i]; echo $i."<br>"; print_r($arr); echo "<br>"; } ?> <?php echo "总条数". count($arr_click);?><a href="temp.php?page=<?php echo $page - 1 > 0? $page - 1: 1; ?>">上一页</a> <a href="temp.php?page=<?php echo $page + 1 < $pnum? $page + 1: $pnum; ?>">下一页</a>
我数组有9条数据
每一页是3条
现在第二页数组的数据显示不错

这是第二页显示的
本来应该是clicks=>5 4 3
点第三页就没有数据了

$arr = $arr_click[($page - 1) * $size + $i]; 不知道如何修改这句
这个是第一页
展开
 我来答
liwenkai2002
推荐于2016-06-22 · TA获得超过140个赞
知道小有建树答主
回答量:396
采纳率:83%
帮助的人:321万
展开全部

这句的算法就不正确了。if(!isset($arr_click[($page - 1) * $size + $i]))break; 


这句改成 if(!isset($arr_click[$i]))break;   当第三页的时候 $i 已经是从索引6开始了,你原来的句子却是 (3-1)*3+6 肯定 超出索引了啦。


我想你的第二页数据,虽然显示了,肯定与索引不对,第二页按你的搞法,应该是显示的索引6开始的。 第一页显示的 应该是索引为3开始的。



还有

if(isset($_GET['page'])){ 
    $page = intval($_GET['page']); 
     $page = $page > $pnum? $pnum: $page; 
 }else{ 
     $page = 1; 
 } 
   $page = empty($_GET['page']) ? '1' : $_GET['page'];

这段代码,if 里面已经有page了。后面还要再获取一次page干嘛呢。

望采纳啦。有什么问题可以百度HI我。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式