php分頁數據最後一頁繼續追加第一頁數據

以前作數據分頁遇到這樣一個需求,就是數據到最後一頁的時候不能中斷,繼續把第一頁的數據追加到後面,無限顯示下去。
原文地址:代碼匯我的博客 http://www.codehui.net/info/23.htmlphp

通常狀況咱們寫數據分頁都是以下代碼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條,就不能用這種方法了。sql

//分頁碼
$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;
相關文章
相關標籤/搜索