网友 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 --------------------------------------------------------------------
|