以前做數據分頁查詢碰到那樣一個要求,便是數據到最后一頁的情況下不可以終斷,再次把第一頁的數據增加到后邊,無盡顯示信息下來。
原文詳細地址:代碼匯個人博客 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;