本文共 858 字,大约阅读时间需要 2 分钟。
之前做数据分页遇到这样一个需求,就是数据到最后一页的时候不能中断,继续把第一页的数据追加到后面,无限显示下去。
原文地址:代码汇个人博客
一般情况我们写数据分页都是如下代码
//分页码$page = $_REQUEST['page'];//显示条数$limit = 10;//分页开始条数$start_limit = ($page - 1) * $limit;//运行sql语句得到的结果$list = model('table')->limit("$start_limit, $limit")->findAll();//返回数据return $list;
比如我们有102条数据,到了11页的时候就会只有2条数据,显然这不是我们要的结果。如果我们想要第11页数据显示的是最后的2条+第1页的前8条,就不能用这种方法了。
//分页码$page = $_REQUEST['page']; //显示条数$limit = 10;//数据总条数$count = model('table')->count();//取模$pattern = (($page - 1) * $limit) % $count; //余条数$pattern_limit = $pattern % $limit;//获取数据$list = model('table')->limit("$pattern, $limit")->findAll();//数据条数小于页面显示条数 继续查询进行追加if(count($list) < $limit){ //差数据条数 $remainder = $limit - count($list); //重头开始查询数据 $new_list = model('table')->limit("0, $remainder")->findAll(); //合并数据 $list = array_merge($list, $new_list);}return $list;
转载地址:http://iefzo.baihongyu.com/