
 
 | 
| 技术资料  > ASP技术 > 打印相关 : ASP技术在论坛中的运用(四)(吐血推荐!!!!) |  
ASP技术在论坛中的运用(四)(吐血推荐!!!!) March 25,2004 |  
  文章显示模块 
     
      前面说过,一片具体的文章是分属在看板和主体之下的。因此显示文章也要经过看板列表和主体列表这两页面后,才能得到特定主题下文章的列表。 
     
      下面先来看看看板列表的显示页面: 
     
       
     
      < html> 
     
      < head> 
     
      < title>看板列表< /title> 
     
      < meta http-equiv="Content-Type" content="text/html;  
    charset=gb2312"> 
     
      < /head> 
     
      < % 
     
      '打开连接,显示看板列表 
     
      Set conn = Server.CreateObject("ADODB.Connection") 
     
      conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &  
    Server.MapPath("bbssystem.mdb") 
     
      sql = "select * from 看板列表" 
     
      set rs=conn.execute(sql) 
     
      %> 
     
      简单的SQL查询,把所有的看板有关信息传回到纪录集RS中。下面的任务就是显示纪录记得内容,并在相应的看板名称上建立显示看板主题的链接。 
     
       
     
      < body bgcolor="#FFFFFF"> 
     
      < h2 align="center">看板列表< /h2> 
     
      < table width="60%" border="0" cellspacing="0"  
    cellpadding="0" align="center"> 
     
       < tr bgcolor="#FFFFCC">  
     
       < td height="35" width="25%">看板名称< /td> 
     
       < td height="35" width="21%">板主< /td> 
     
       < td height="35" width="23%">主题数< /td> 
     
       < td height="35" width="31%">板主登陆< /td> 
     
       < /tr> 
     
       
     
      这儿一部分是显示出表格中每一列的标题,这儿我没有用一个统一的函数来显示RS纪录记的内容,因为这样可以对表格的外观和风格做更多的控制,使用起来虽然有点麻烦,但是却更为灵活。 
     
       
     
       < %  
     
      do 
     
      boardid=rs("id") 
     
      boardname=rs("名称") 
     
       boardmanager=rs("板主") 
     
       
     
      response.write "< tr>< td>< a  
    href=qBoard.asp?boardid="& boardid & "&boardname=" &  
    boardname & ">" & boardname & "< /a>< /td>" 
     
       
     
      这一行是重点,当点击了各个板的名称后,可以链接到显示看板主题的页面。代码看起来有点麻烦,我分解了给你讲,你就会明白了。在点击之后,浏览器请求调用的是qBoard.asp页面,并带有一个参数boardid,代表要显示看板的ID号,在请求页面和参数之间用问号(?)分隔。Boardid是前面设定了的变量,其中包含的就是对应看板的ID号。这个链接中还带有另外一个参数boardname,用来把看板名称传递给qBoard.asp页面。在多个参数间使用“&”来分隔。这个参数不是必须的,传递过去是为了免得在qBorad.asp中再次用boardid来查询看板名称。一般来说,能够少用数据库操作就应当尽量的少用,这样可以提高ASP页面的性能。 
     
       因为Response.Write语句使用字符串作为参数的,所以上面的字符串和变量之间使用的是“&”联结符。最后ASP页面解释的结果应该是像这样的:<  
    td>< a href=qBoard.asp?boardid=1&boardname=系统板> 系统板 <  
    /a>< td> 
     
       
     
      response.write "< td>< a href=qAuthor.asp?author="&  
    boardmanager & ">" & boardmanager & "< /a><  
    /td>" 
     
      response.write "< td>" & rs("主题数") &  
    "< /td>" 
     
       response.write "< td>< a href=managerlogin.asp?boardid="&  
    boardid & ">板务处理< /a>< /td>< /tr>" 
     
       
     
        
    在这个表中,除了可以由链接来显示看板主题的内容,还有一个斑竹查询部分和板务处理部分,斑竹查询可以是通过qAuthor.asp来实现的,它只是简单的从数据库中取出作者信息,并显示出来,这儿就不多说了。而板务处理是由managerlogin.asp页面来处理的。这属于文章审阅模块,我们后面再说。 
     
       
     
      rs.movenext 
     
      loop until rs.eof  
     
      %>  
     
       
     
      通过一个do … loop循环,把纪录集中所有的信息都显示了出来。在这个表中,除了可以 
     
       
     
      < /table> 
     
      < div align="center">< br> 
     
      点击看板名称可以得到主题列表,点击板主名称可以察看板主信息  
    < /div> 
     
      < /body> 
     
      < /html> 
     
      < % 
     
      set rs=nothing 
     
      conn.close 
     
      set conn=nothing 
     
      %> 
     
       
     
      下面再来看看上面提到的qBaord.asp这个页面: 
     
       
     
      < % 
     
      boardid=request("boardid") ‘取出由上个页面传递过来的看板ID号 
     
      Set conn = Server.CreateObject("ADODB.Connection") 
     
      conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &  
    Server.MapPath("bbssystem.mdb") 
     
      Set cmd = Server.CreateObject("ADODB.Command") 
     
      Set cmd.ActiveConnection = conn 
     
      cmd.CommandText = "主题列表" 
     
       ReDim param(0) ' 声明参数数组 
     
      param(0) = CLng(boardid) ' CLng 不可忽略 
     
      Set rs = cmd.Execute( ,param ) 
     
      %>  
     
       
     
      < html> 
     
      < head> 
     
      < title>主题列表< /title> 
     
      < meta http-equiv="Content-Type" content="text/html;  
    charset=gb2312"> 
     
      < /head> 
     
       
     
      < body bgcolor="#FFFFFF"> 
     
      < h1 align="center">< %=rs("看板名")%>板主题列表  
    < /h1> 
     
      < table width="80%" border="0" cellspacing="0"  
    cellpadding="0" align="center"> 
     
       < tr bgcolor="#FFFFCC">  
     
       < td width="89%" height="21">主题< /td> 
     
       < td width="11%" height="21">文章数< /td> 
     
       < /tr> 
     
      < %  
     
      do 
     
      topicid=rs("id") 
     
      topicname=rs("标题") 
     
       sum=rs("文章数") 
     
       
     
      response.write "< tr>< td>< a href=qtopic.asp?topicid="  
    & topicid & "&boardname=" & boardname & ">"  
    & topicname & "< /a>< /td>" 
     
      response.write "< td>" & sum & "< /td><  
    /tr>" 
     
      rs.movenext 
     
      loop until rs.eof  
     
      %>  
     
      < /table> 
     
      < /body> 
     
      < /html> |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved