php分頁資料最後一頁繼續追加第一頁資料
阿新 • • 發佈:2018-12-22
之前做資料分頁遇到這樣一個需求,就是資料到最後一頁的時候不能中斷,繼續把第一頁的資料追加到後面,無限顯示下去。
原文地址:程式碼匯個人部落格 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;