|          
网友 aspboy1 原创有很都朋友写信问我的站内搜索实现方法,其实用ASP实现站内模糊搜索很简单.
 这里只给大家讲一下具体的实现思路.首先要建立一个存储站内信息的数据库.我们
 假设有一个存放文章的数据库wz.mdb数据结构如下:
 wz.mdb
 字段 类型 含义
 wid 自动编号 id号
 wauth 文本 作者
 wsubject 文本 文章标题
 wcontent 文本 文章内容
 wkey 文本 其它关键字
 数据库wz.mdb的数据添加须另用程序实现,比较容易,这里不作说明.
 1.search.html '搜索界面
 <html>
 <body>
 <p>请输入关键字</p>
 <form name=fmsearch action=searchact.asp method=post>
 'searchact为处理表单的搜索处理程序
 <input type=text name=keystr size=28>
 <input type=submit name=sou value=搜索>
 </form>
 </body>
 </html>
 2.searchact.asp '处理表单的搜索处理程序
 <%keystr=Request.form("keystr") '获取search.html提交的关键字
 if keystr="" then
 response.write"<p>错误,请输入关键字"
 response.end
 end if
 set dbconn=server.createobject("adodb.connection")
 '创建数据连接对象
 conpath="DBQ=" &server.mappath("wz.mdb")
 '获取wz.mdb实际路径
 dbconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & conpath
 '打开wz.mdb
 set rs=server.createobject("adodb.recordset")
 '创建记录集
 sqlstr="select wid,wauth,wsubject from ozg "&
 "where wsubject Like '%"& keystr &"%' or "&
 "wauth like '%"& keystr &"%' or wcontent like '%"& keystr &"%' or"&
 " wkey like '%"& keystr &"%' order by wid desc"
 'sqlstr为查询语句,是实现搜索的核心部分,应仔细斟酌
 rs.open sqlstr,dbconn,3,1 '得到满足条件的记录
 if not rs.eof then
 response.write"<p>根据你的输入条件共搜到满足条件的文章"&rs.recordcount
 response.write"<p>编号    作者    标题"
 do while not rs.eof
 response.write"<p>"&rs("wid")&"  "&rs("wauth")&"  "%>
 <a href=wz.asp?id=<%=rs("wid")%>><%rs("wsubject")%></a>
 <%
 rs.movenext
 loop
 else
 response.write"没有搜到您要的文章,请<a href='javascript:history.go(-1)'>返回</a>"
 end if
 rs.close
 dbconn.close
 %>
 3.wz.asp '显示文章内容
 <%id=cint(Request.form("id")) '获取文章的id
 set dbconn=server.createobject("adodb.connection")
 '创建数据连接对象
 conpath="DBQ=" &server.mappath("wz.mdb")
 '获取wz.mdb实际路径
 dbconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & conpath
 '打开wz.mdb
 set rs=server.createobject("adodb.recordset")
 sqlstr="select wauth,wsubject,wcontent from wz where wid='"&id&"' order by wid"
 rs.open sqlstr,3,1
 if not rs.eof then
 reponse.write"<p>作者  "&rs("wauth")
 reponse.write"<p>标题  "&rs("wsubject")
 reponse.write"<p>内容  "&rs("wcontent")
 end if
 rs.close
 dbconn.close
 %>
 以上程序代码很简单,大家可以把其它数据库也添加进来,同时也可把界面美化以下.
 --------------------------------------------------------------------
 writen by aspboy and powered by http://easp.126.com | email:superozg@263.net
 --------------------------------------------------------------------
 
 |