php分页数据最后一页继续追加第一页数据
程序员文章站
2022-11-21 19:05:19
之前做数据分页遇到这样一个需求,就是数据到最后一页的时候不能中断,继续把第一页的数据追加到后面,无限显示下去。 ......
之前做数据分页遇到这样一个需求,就是数据到最后一页的时候不能中断,继续把第一页的数据追加到后面,无限显示下去。
原文地址:代码汇个人博客
一般情况我们写数据分页都是如下代码
//分页码 $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;