文章顯示模塊 前面說過,一片具體的文章是分屬在看板和主體之下的。因此顯示文章也要經過看板列表和主體列表這兩頁面后,才能得到特定主題下文章的列表。 下面先來看看看板列表的顯示頁面: < 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>
|