當前位置:編程學習大全網 - 源碼下載 - asp 逐字模糊查詢

asp 逐字模糊查詢

包含了“家園”的記錄,壹定在包含了“家”或者“園”的記錄中。由此,只要將欲查詢的關鍵字例如“美好家園”以單字分割,把沒有意義的字符(如空格等)去掉,存入壹個動態數組中,然後用InStr()逐個判斷數組元素的值(即單字)是否包含於當前記錄中,若是,則輸出。

^_^

昨晚太晚了,今晚想起這個問題,在自己的機器上調試了壹下,成功了,能達到樓主的要求。現在把整個程序發上來,供樓主參考。

數據庫名:test.mdb

表名:Table1

字段名:Content

search.asp

<%

'連接數據庫

set conn=server.createobject("adodb.connection")

provider="provider=microsoft.jet.oledb.4.0;"

DBPath ="data source=" & Server.MapPath("test.mdb")

conn.Open provider & DBPath

%>

<html>

<head><title></title></head>

<body>

<div align="center">

<form method="POST" action="search.asp" name="searchform">

<table width="380" align="center" border="0">

<tr>

<td>輸入查詢關鍵字:</td>

<td><input type="text" name="KeyWords" size="20" value=""></td>

<td>?<input type="submit" border="0" value="查 詢" name="CX"></td>

</table>

</form>

<%

KeyWords=Replace(request("KeyWords")," ","")

len_KeyWords=len(KeyWords)

Redim Array_Word(len_KeyWords)

for i =1 to len_KeyWords

Array_Word(i) = Mid(KeyWords,i,1)

next

total=0

%>

<table border="1" width="560">

<tr><td><b>查詢的關鍵字為:</b>

<font color=red>

<%

for i =1 to len_KeyWords-1

response.write Array_Word(i) & ","

next

response.write Array_Word(len_KeyWords)

%>

</font></td></tr>

<%

sql="select Content from table1"

set rs=server.createobject("adodb.recordset")

rs.open sql,conn,1,1

%>

<% if KeyWords ="" then %>

<tr><td>沒有您要查詢的內容。</td></tr>

<%

else

for i = 1 to rs.recordcount

TF = "(InStr(rs("& """Content""" &"),Array_Word(1))<>0)"

for j=2 to len_KeyWords

TF = TF & " or (InStr(rs(" & """Content""" & "),Array_Word(" & j & "))<>0)"

next

if EVAL(TF) then

total=total+1

%>

<tr><td><%=rs("Content")%></td></tr>

<%

end if

rs.movenext

next

end if

%>

<tr><td align="center">壹***搜索到<%=total%>條記錄!</td></tr>

<%

rs.close

set rs=nothing

%>

</table>

</div>

</body></html>

遺留問題:對於輸入的關鍵字中無意義的某些字符,如","".","^"等,未作處理。

祝妳成功!

  • 上一篇:javascript放大鏡代碼
  • 下一篇:開發壹個網站難不難?補充:找易企信談了壹下他們收費有點貴,求各位網友給我點建議。
  • copyright 2024編程學習大全網