[原創]分頁中級教程之步進分頁
在初級教程中提到當頁碼很多的情況,本文主要是針對此處探討。歡迎拍磚。
源碼與之前的初級分頁教程差不多,只是在輸出翻頁連結的地方稍作改進
什麼是步進分頁呢?這裡簡單的說一下
當總頁數達到好幾百的時候,如果按照之前的文章中的做法,那麼頁面變得很醜,所有的頁碼都輸出來了,因此很不雅觀,所以需要對輸出的頁碼數量進行控制。如果你細心,看discuz的分頁。最終顯示的頁碼始終不超過一定數量。
PHP code
分頁執行個體$total_page?$total_page:$page;//避免$_GET["page"]大於總頁數//翻頁連結開始$page_link="";if ($total_page>1){ $page_link="一共{$total_page}頁"; $page_link.="當前第{$page}頁"; $page_link.="首頁"; if ($page>1){ //頁碼大於1的時候,顯示上一頁翻頁連結 $pre_page=$page-1; $page_link.="<<"; } //翻頁列表 //步進分頁,翻頁列表的數字始終只顯示9個或者自訂的個數,本例定義只顯示9個,當前頁左右各顯示4個頁碼 if ($total_page>9) { if ($page>4) { $from=$page-4; $to=$page+4; if ($to>$total_page) { $from=$total_page-8; $to=$total_page; } } else { $from=1; $to=9; } } else { $from=1; $to=$total_page; } for ($i=$from;$i<=$to;$i++) { if ($i==$page) { //高亮當前頁頁碼 $page_link.="$i"; } else { $page_link.="$i"; } } //頁碼小於總頁數的時候顯示下一頁翻頁連結 $next_page=$page+1; if($next_page<$total_page) { $page_link.=">>"; } $page_link.="最後一頁";}//輸出記錄$offset=($page-1)*$page_size;$query=mysql_query("select * from product limit $offset,$page_size") or die(mysql_error());echo "
";while ($rs=mysql_fetch_array($query)){ echo "
- {$rs["id"]}-{$rs["ename"]}
";}echo "
";echo "$page_link";?>
------解決方案--------------------
難得看見的加綠色的文章。。
------解決方案--------------------
好教程,適合新手哦,我有自己的分頁類