網(wǎng)友 aspboy1 原創(chuàng) 有很都朋友寫(xiě)信問(wèn)我的站內(nèi)搜索實(shí)現(xiàn)方法,其實(shí)用ASP實(shí)現(xiàn)站內(nèi)模糊搜索很簡(jiǎn)單. 這里只給大家講一下具體的實(shí)現(xiàn)思路.首先要建立一個(gè)存儲(chǔ)站內(nèi)信息的數(shù)據(jù)庫(kù).我們 假設(shè)有一個(gè)存放文章的數(shù)據(jù)庫(kù)wz.mdb數(shù)據(jù)結(jié)構(gòu)如下: wz.mdb 字段 類(lèi)型 含義 wid 自動(dòng)編號(hào) id號(hào) wauth 文本 作者 wsubject 文本 文章標(biāo)題 wcontent 文本 文章內(nèi)容 wkey 文本 其它關(guān)鍵字 數(shù)據(jù)庫(kù)wz.mdb的數(shù)據(jù)添加須另用程序?qū)崿F(xiàn),比較容易,這里不作說(shuō)明. 1.search.html '搜索界面 <html> <body> <p>請(qǐng)輸入關(guān)鍵字</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提交的關(guān)鍵字 if keystr="" then response.write"<p>錯(cuò)誤,請(qǐng)輸入關(guān)鍵字" response.end end if set dbconn=server.createobject("adodb.connection") '創(chuàng)建數(shù)據(jù)連接對(duì)象 conpath="DBQ=" &server.mappath("wz.mdb") '獲取wz.mdb實(shí)際路徑 dbconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & conpath '打開(kāi)wz.mdb set rs=server.createobject("adodb.recordset") '創(chuàng)建記錄集 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為查詢(xún)語(yǔ)句,是實(shí)現(xiàn)搜索的核心部分,應(yīng)仔細(xì)斟酌 rs.open sqlstr,dbconn,3,1 '得到滿(mǎn)足條件的記錄 if not rs.eof then response.write"<p>根據(jù)你的輸入條件共搜到滿(mǎn)足條件的文章"&rs.recordcount response.write"<p>編號(hào) 作者 標(biāo)題" 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"沒(méi)有搜到您要的文章,請(qǐng)<a href='javascript:history.go(-1)'>返回</a>" end if rs.close dbconn.close %> 3.wz.asp '顯示文章內(nèi)容 <%id=cint(Request.form("id")) '獲取文章的id set dbconn=server.createobject("adodb.connection") '創(chuàng)建數(shù)據(jù)連接對(duì)象 conpath="DBQ=" &server.mappath("wz.mdb") '獲取wz.mdb實(shí)際路徑 dbconn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & conpath '打開(kāi)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>標(biāo)題 "&rs("wsubject") reponse.write"<p>內(nèi)容 "&rs("wcontent") end if rs.close dbconn.close %> 以上程序代碼很簡(jiǎn)單,大家可以把其它數(shù)據(jù)庫(kù)也添加進(jìn)來(lái),同時(shí)也可把界面美化以下. -------------------------------------------------------------------- writen by aspboy and powered by http://easp.126.com | email:superozg@263.net --------------------------------------------------------------------
|