
日期:2006-08-07 作者:喜騰小二 來源:PHPChina
原文:/bbs/viewthread.php?tid=7948&extra=page%3D1
剛寫的分頁導航,請指教,還有什麼不妥的地方加一句
php
//定義相關資料
$topictotal=261; //總主題數
$pagepre=3; //前導頁
$pageline=7; //可顯示頁數
$topicpage=15; //每頁主題數
if($topictotal<=0)exit("獲取主題出錯或沒有任何主題!"); //無主題時
//求得相關的資料
$pagetotal=ceil($topictotal/$topicpage); //總頁數
$topiclastpage=$topictotal%$topicpage; //最後頁主題數
//當前頁不在範圍
if($p<1 || $p>$pagetotal)$p=1; //重設當前頁為1
if($pagetotal<=$pageline) //總頁不足可顯示頁數
{
$sp=1;
$ep=$pagetotal;
}
else //總頁足量
{
if($p<=$pagepre) //在最前幾頁
{
$sp=1;
$ep=$pageline;
}
elseif($p>$pagetotal+$pagepre-$pageline) //在最後幾頁
{
$sp=$pagetotal-$pageline+1;
$ep=$pagetotal;
}
else //正常情況
{
$sp=$p-$pagepre+1;
$ep=$p-$pagepre+$pageline;
}
}
echo "當前頁/總頁:".$p."/".$pagetotal;
printf(",$_SERVER['PHP_SELF']);
for($i=$sp;$i<=$ep;$i++) //列出可顯示頁
{
if($p==$i) //當前頁加粗
{
printf(" %d ",$_SERVER['PHP_SELF'],$i,$i);
}
else
{
printf(" %d ",$_SERVER['PHP_SELF'],$i,$i);
}
}
printf("");
$st=($p-1)*$topicpage+1;
$et=$p*$topicpage;
if($p==$pagetotal && $topiclastpage)$et=$st+$topiclastpage-1;
printf("
主題清單
"
);
for($j=$st;$j<=$et;$j++)printf("第 %d 主題" ,$j,$j);
printf("");
?> PHP:if($topictotal<=0)exit("獲取主題出錯或沒有任何主題!"); //無主題時