精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● PHP>>功能代码>>论坛>>一个文本论坛的源码(六)

主题:一个文本论坛的源码(六)
发信人: showtop()
整理人: jackyz(2000-08-10 11:22:00), 站内信件
接上回介绍了两个分页显示所需的函数,下面我们来看看是怎么调用的。
就以“感悟生活”的页面文件life.php3为例吧。

本文件可以从外部调用,不用参数,显示就从第一条记录开始。

如果是翻页,则发生了自身的调用,那可接受参数$nr和$offset,
分别表示本栏目总文章篇数以及要从第几篇文章开始显示,回忆一下上节我介绍
的那两个分页显示函数,再往下看吧。


先把这两个函数包含进来吧。
<?php

include("phtml/viewpage.php3");

//用$nr来贮存本栏目的记录数,就是有多少篇文章
//如果在参数中没有传递,则调用函数count_page()给个初始值。

if(empty($nr)){
$nr =count_page(2);
}
if( empty($offset) ) $offset=0;
//如果没有传递,给个初始值0表示从头开始显示

?>


我是用表格来显示每篇文章的标题、作者、时间、阅、评。
具体显示代码如下:

<table width="100%" border="0" cellspacing="2" cellpadding="2" vspace=
"0" hspace="0">

 <?php

//就是这句了!! 2表示第二个栏目,从$offset开始每页显示12条记录!!
$tmp=view_page(2,$offset,12);

//先判断一下是不是有值返回,下面的代码不用解释了吧。
if(is_array($tmp)){
for($j=0;$j<count($tmp);$j++){
$i=key($tmp);
echo "<tr bgcolor=\"#EBEBEB\">";
     echo "<td width=\"65%\" height=\"20\">"."<a href=\"phtml/show.php
3?id=".$i."\" target=\"_blank\">".$tmp[$i][0]."</td>";
     echo "<td width=\"10%\" height=\"20\"><a href=mailto:".$tmp[$i][2
].">".$tmp[$i][1]."</td>";
     echo "<td width=\"15%\" height=\"20\">".date("Y-m-j",filemtime("p
age/".$i.".info"))."</td>";
     echo "<td width=\"5%\" height=\"20\">".$tmp[$i][4]."</td>";
     echo "<td width=\"5%\" height=\"20\">".$tmp[$i][5]."</td>";
     echo "</tr>";
     next($tmp);
    }
   }
?>
</table>


以下语句用来显示翻页的一些按钮:

<?php
$pages=ceil($nr/12); //页数
$cpage=$offset/12+1; //当前页
echo "<td height=\"20\" align=\"left\">第".$cpage."页/共".$pages."页
</td>";
  
  echo "<td height=\"20\" colspan=\"5\" align=\"right\">";
  
  //第2页以后,允许直接翻到首页
  if($cpage>=2) {
    echo "<a href=\"".$PHP_SELF."?nr=".$nr."&offset=0\"> 首页 ";  
 }
  
  //除了第1页以外,都允许往前翻一页
  if($offset) {  
     $preoffset=$offset-12; //记录往前移12条
     echo "<a href=\"".$PHP_SELF."?nr=".$nr."&offset=".$preoffset."\">
 前一页 ";  
   }
   
   //除了最后一页,都可以往后翻一页
   if($pages!=0 and $cpage!=$pages){
      $newoffset=$cpage*12; //记录后移12!!注意$offset=0时,$cpage=1
      echo "<a href=\"".$PHP_SELF."?nr=".$nr."&offset=".$newoffset."\"
> 下一页 ";  
   }
   
   //可以往后翻,当然也可以直接翻到未页了
   if($pages!=0 and $cpage<$pages){
$newoffset = ($pages-1)*12;
echo "<a href=\"".$PHP_SELF."?nr=".$nr."&offset=".$newoffset."\">
 未页 ";     }
                
?>

在上面这些条件句中,调用自身时都给出了参数$nr and $offset。

这样就在文本论坛中,实现了翻页显示记录的功能。

<未完待续>

--
让我的所欲渐化虚无
让我的付出渐近无倦
 E-mail : [email protected]
    url : http://sbiotech.onchina.net《生物技术快报》
          http://www.sharetop.onchina.net 《自由岛论坛》

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 210.75.57.220]

[关闭][返回]