以前做数据分页查询碰到那样一个要求,便是数据到最后一页的情况下不可以终断,再次把第一页的数据增加到后边,无尽显示信息下来。
原文详细地址:代码汇个人博客 https://www.codehui.net/info/23.html

一般状况大家写数据分页查询全是以下代码

//分页数
$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;