
日期: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("获取主题出错或没有任何主题!"); //无主题时