刚写的分页导航,请指教

日期:2006-08-07  作者:喜腾小二  来源:PHPChina


原文:/bbs/viewthread.php?tid=7948&extra=page%3D1

刚写的分页导航,请指教,还有什么不妥的地方加一句

PHP:

php
//定义相关数据
$topictotal=261;                
//总主题数
$pagepre=3;                       
//前导页
$pageline=7;                     
//可显示页数
$topicpage=15;                 
//每页主题数
if($topictotal<=0)exit("获取主题出错或没有任何主题!");    
//无主题时
//求得相关的数据
$pagetotal=ceil($topictotal/$topicpage);               
//总页数
$topiclastpage=$topictotal%$topicpage;                   
//最后页主题数
//当前页不在范围
if($p<|| $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("获取主题出错或没有任何主题!");    //无主题时 

<<<返回技术中心

技术文章

站内新闻

我要啦免费统计