日期:2014-01-06  浏览次数:20909 次

紧接上节,我们的新闻系统已能完成日常的新闻在线添加,删除等的功能,但这还是不足够的,有的用户可能需要查找一下过往某一专题内容的相关新闻条目,而一个比教完善的新闻系统,当然少不免也的完成这个功能。
    现在马上就为我们的新闻系统添加上(全文/标题)的检索功能吧,首先我们做一个检索表单,见下面的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的字串,如过有的话就加如我们的结果记录集,最后把新闻标题显示出来。而输出界面当然可以满足您个人的需要,自己来定制,这里不采用分页来显示了。大家可以在这个新闻发布系统的基础上,结合您本身的需要,把它设计得更为完美。
    至此,我们的这套个人网站自动新闻发布系统基本上制作完毕了