文章系統中“上篇、下篇”效果的製作

來源:互聯網
上載者:User
  以前曾經參考過一個網站的源碼,是使用ID+1和ID-1的辦法來判斷上下篇的。在實際使用過程中,發現一個問題:當刪除資料庫中的一篇文章時,就會造成ID不連續,如果用ID+1和ID-1來判斷就會出現找不到記錄。所以程式並不是非常的完美。
  在我們所介紹的ASP代碼中,是通過查詢大於當前ID的第一條記錄來找出下一篇的ID,查詢小於當前ID的第一條記錄來找出上一篇的ID,這樣就算ID不連續也可以正常顯示了。(程式碼也是參閱過經典論壇相關貼子提示所製作的)
  簡單介紹方法:
  資料表articles中有id(文章ID)、title(文章標題)、content(文章內容)、addtime(文章發布時間)等其它各相關欄位。
<!--資料庫連接檔案-->
<!--#include file="conn.asp"-->
<%
`定義一個nextrs函數來找出下一篇的ID  
function nextrs
nextrsd=server.CreateObject("adodb.recordset")
sql="select top 1 * from articles where id>"&a1&" order by id"
set nextrsd=conn.execute(sql)
if nextrsd.eof then
response.Write "下一篇:這是本分類下的最後一篇文章"
else
a2=nextrsd("id")
response.Write "下一篇:<a href='article.asp?id="&a2&"'>"&nextrsd("title")&"</a>"
end if
end function

`定義一個backrs函數來找出上一篇的ID
function backrs
backrsd=server.CreateObject("adodb.recordset")
sql="select top 1 * from articles where id<"&a1&" order by id desc"
set backrsd=conn.execute(sql)
if backrsd.eof then
response.Write "上一篇:這是本分類下的第一篇文章"
else
a0=backrsd("id")
response.Write "上一篇:<a href='article.asp?id="&a0&"'>"&backrsd("title")&"</a>"
end if
end function

`取得傳遞過來的文章ID
ID=request("id")
sql="select * from articles where id="&id
set rs=conn.execute(sql)
a1=rs("id")
%>
<!--顯示文章內容..............................-->
<!--調用前面定義的顯示上一篇文章的函數--><% backrs %><br>
<!--調用前面定義的顯示下一篇文章的函數--><% nextrs %>
<!--程式結束-->

  水平有限,可能在代碼上還有些不足之處,如出現Bug,請及時給予指正。如有疑問之處,請登入http://www.webjx.com/bbs發貼詢問。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。