这样就可以了
key=request("key")
key1=split(key," ")
sql="select * from news where title like '%"&key(0)&"%'"
for i=1 to ubound(key1)
sql=sql&" or title like '%"&key1(i)&"%'"
next
我搜索页面是这样写的:
<form action="product_search.asp" method="post" name="form2"><td height="16" colspan="2" align="center">
<font class="r12">快速查找:
<input name="keyword" type="text" size="20" maxlength="50"></font><input name="搜 索" type="submit" id="搜 索" value="搜 索" /></td>
</form>
处理搜索product_search.asp是这样:
<%
if len(request("keyword"))=0 then
response.write("请填写关键字!!")
Response.end
end if
keyword=request("keyword")%>
<%
key1=split(key," ")
strsql="select * from camera where camera_name like '%"&keyword&"%' or camera_model like '%"&keyword&"%' or camera_int like '%"&keyword&"%'"
for i=0 to ubound(key1)
strsql=strsql&" or camera_name like '%"&key1(i)&"%'' or camera_model like '%"&key1(i)&"%' or camera_int like '%"&key1(i)&"%'"
next
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 1
total=0
total=rs.recordcount
while not rs.eof %>
现在输入关键字是能搜索到的,也能列表,只要在输入关键字的时候加上空格然后再加几个字就不行了,说明:即使数据记录中完全符合 关键字 空格 关键字 也不行,不知道怎样处理,我知道我的代码很有问题,但研究去研究来也不行,功力太浅,还希望各位帮助,谢谢
我搜索页面是这样写的:
<form action="product_search.asp" method="post" name="form2"><td height="16" colspan="2" align="center">
<font class="r12">快速查找:
<input name="keyword" type="text" size="20" maxlength="50"></font><input name="搜 索" type="submit" id="搜 索" value="搜 索" /></td>
</form>
处理搜索product_search.asp是这样:
<%
if len(request("keyword"))=0 then
response.write("请填写关键字!!")
Response.end
end if
keyword=request("keyword")%>
<%
key1=split(key," ")
strsql="select * from camera where camera_name like '%"&keyword&"%' or camera_model like '%"&keyword&"%' or camera_int like '%"&keyword&"%'"
for i=0 to ubound(key1)
strsql=strsql&" or camera_name like '%"&key1(i)&"%'' or camera_model like '%"&key1(i)&"%' or camera_int like '%"&key1(i)&"%'"
next
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 1
total=0
total=rs.recordcount
while not rs.eof %>
现在输入关键字是能搜索到的,也能列表,只要在输入关键字的时候加上空格然后再加几个字就不行了,说明:即使数据记录中完全符合 关键字 空格 关键字 也不行,不知道怎样处理,我知道我的代码很有问题,但研究去研究来也不行,功力太浅,还希望各位帮助,谢谢
你还没解决这个问题?你仔细找找,
response.write strsql 看看它打印出来的东西是什么?
我改成 key1=split(keyword," ")出现:
技术信息(用于支持人员)
这个我以前试过了
改成这样倒是不报错,就是加个空格后什么也搜不到
<%
if len(request("keyword"))=0 then
response.write("请填写关键字!!")
Response.end
end if
key=request("keyword")
%>
<%
key1=split(keyword," ")
strsql="select * from camera where camera_name like '%"&key&"%' or camera_model like '%"&key&"%' or camera_int like '%"&key&"%'"
for i=1 to ubound(key1)
strsql=strsql&" or camera_name like '%"&key1(i)&"%'' or camera_model like '%"&key1(i)&"%' or camera_int like '%"&key1(i)&"%'"
next
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strsql, conn, 1, 1
total=0
total=rs.recordcount
while not rs.eof %>
[此贴子已经被作者于2006-1-13 21:28:34编辑过]
非常感谢您的指点,一个个试的结果和一起试的结果一样,比如说我数据库中有这样一天记录:sony ccd 高清晰数码摄像机,
我在输入sony时有记录,输入“高清晰”也有记录,输入“高清晰摄像机”没有记录,输入“高清晰数码摄像机”有记录,输入“高清晰 摄像机”没有记录,我就是想输入“高清晰 摄像机”时能搜索得到,就是内容包括“高清晰”和“摄像机”,而不是要“高清晰”和“摄像机”几个字连在一起才能搜到。不好意思,不知是否描述清楚,在问题判断上,我一般是每种情况试一下,代码调换一下,毕竟对ASP了解还不够