緊接上節,我們的新聞系統已能完成日常的新聞線上添加,刪除等的功能,但這還是不足夠的,有的使用者可能需要尋找一下過往某一專題內容的相關新聞條目,而一個比教完善的新聞系統,當然少不免也的完成這個功能。
現在馬上就為我們的新聞系統添加上(全文/標題)的檢索功能吧,首先我們做一個檢索表單,見下面的HTML代碼,把這些代碼放在需要新聞檢索的web頁面上。就可以供使用者方便地完成新聞搜尋。
<form method="POST" action="http://XXX..com.cn/cgi-win/search/search.asp">
<p><select name="select" size="1">
<option selected value="search_1">新聞檢索(標題)</option>
<option value="search_2">新聞檢索(全文)</option>
</select><input type="text" name="key" size="20"><input type="submit" value="搜 索"
name="search"></p>
</form>
在這個FORM的基礎添加上處理搜尋的ASP程式search.asp。在表單用我們用key這個參數來指示出需要匹配的字串,而select參數指定是基於全文檢索搜尋還是標題搜尋。
現在進入程式處理部份,看看我們的search.asp程式。
*search.asp
<% @language="vbscript" %>
<%
if request.form("key")="" then
response.redirect "/"
end if
select case request.form("select")
case "search_1"
%>
<!--#include Virtual="/cgi-win/search/news/data.inc"-->
<%
Set rs_1 = Server.CreateObject("ADODB.Recordset")
sql="select * from data where instr(news_title,'"&request.form("key")&"')>0"
sql=sql+" Order by news_id Desc,news_class ASC"
rs_1.open sql,conn_1,3,2
case "search_2"
%>
<!--#include Virtual="/cgi-win/search/news/data.inc"-->
<%
Set rs_1 = Server.CreateObject("ADODB.Recordset")
sql="select * from data where instr(news_comment,'"&request.form("key")&"')>0"
sql=sql+" Order by news_id Desc,news_class ASC"
rs_1.open sql,conn_1,3,2
end select
if rs_1.bof then
response.redirect "/"
response.end
end if
rs_1.movefirst
dispmess="<table border=0 width=100% cellpadding=0 cellspacing=0 class=a9>"
disp=""
do while not rs_1.eof
if not rs_1.eof then
disp=disp&"<tr><td><a href=http://www.aaaaa.com.cn/news/read.asp?news_id="&rs_1("news_id")&" target=_blank>>>"&rs_1("news_title")&"<font size=1>("&rs_1("news_month")&"-"&rs_1("news_day")&")</font></a></td></tr></p>"
rs_1.movenext
end if
loop
dispmess=dispmess&disp
dispmess=dispmess&"</table>"
'dispmess="document.write('"&dispmess&"')"
%>
<%=dispmess%>
通過傳入的KEY參數和select(全文或標題檢索參數),產生一條SQL查詢語句,分別在標題的資料庫欄位或在內容的欄位中尋找是否包含有key的字串,如過有的話就加如我們的結果記錄集,最後把新聞標題顯示出來。而輸出介面當然可以滿足您個人的需要,自己來定製,這裡不採用分頁來顯示了。大家可以在這個新聞發布系統的基礎上,結合您本身的需要,把它設計得更為完美。
至此,我們的這套個人網站自動新聞發布系統基本上製作完畢了