| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1342 人关注过本帖
标题:[求助]提交搜索 关键字 + 空格 出现问题
取消只看楼主 加入收藏
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
 问题点数:0 回复次数:9 
[求助]提交搜索 关键字 + 空格 出现问题
当我在输入搜索关键字时,只要字符间没有空格就可以搜索,只要加上一个或多个空格即使数据库有关键字也搜索不到记录,怎样让程序能处理关键字+空格和空格后面的内容,表现结果为:我输入 硬件 CPU 返回结果为在数据库中含有硬件CPU的信息,或则返回 硬件CPU的信息,当然,如果这个很难,我只要能去掉空格返回空格前的数据就行了,谢谢大家!
搜索更多相关主题的帖子: 关键字 空格 数据库 搜索 CPU 
2006-01-05 22:47
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 

不好意思,我没有调好,加到一下地方不行,谢谢!

<%
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 title 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-6 13:58:10编辑过]

2006-01-06 13:56
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 
我要怎样才能把处理空格的代码加到现有的里面去呢?谢谢各位
2006-01-06 14:00
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 

非常感谢您的热心帮助,我已改成

<%
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 %>

现在同样结果,只要结尾或文字间没有空格,就可以搜到,能在帮忙看看吗,谢谢。

2006-01-06 14:57
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 
我测试了一个下午,也没有成功,我的知识太浅了,我希望各位高人指点一下,谢谢!
2006-01-06 21:27
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 
我已将红色部分修改成一样的了,其它地方也改了,还是不行,看来我是太笨了,实在不行了,再次谢谢大家,我会保留下来慢慢研究。
2006-01-07 20:43
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 
回复:(dpxdpx)以下是引用islet在2006-1-6 7:42:00的...

我搜索页面是这样写的:

<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 %>

现在输入关键字是能搜索到的,也能列表,只要在输入关键字的时候加上空格然后再加几个字就不行了,说明:即使数据记录中完全符合 关键字 空格 关键字 也不行,不知道怎样处理,我知道我的代码很有问题,但研究去研究来也不行,功力太浅,还希望各位帮助,谢谢

2006-01-13 18:42
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 

我改成 key1=split(keyword," ")出现:


技术信息(用于支持人员)

  • 错误类型:
    Microsoft JET Database Engine (0x80040E14)
    语法错误 在查询表达式 'camera_name like '%1%' or camera_model like '%1%' or camera_int like '%1%' or camera_name like '%1%'' or camera_model like '%1%' or camera_int like '%1%'' 中。
    /product/product_search.asp, 第 50 行rs.Open strsql, conn, 1, 1

  • 浏览器类型:
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

  • 网页:
    POST 39 ??? /product/product_search.asp

  • POST Data:
    keyword=1&%CB%D1++%CB%F7=%CB%D1++%CB%F7

这个我以前试过了

2006-01-13 20:59
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 

改成这样倒是不报错,就是加个空格后什么也搜不到

<%
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编辑过]

2006-01-13 21:27
zmw5112
Rank: 1
等 级:新手上路
帖 子:171
专家分:0
注 册:2005-12-11
收藏
得分:0 

非常感谢您的指点,一个个试的结果和一起试的结果一样,比如说我数据库中有这样一天记录:sony ccd 高清晰数码摄像机,

我在输入sony时有记录,输入“高清晰”也有记录,输入“高清晰摄像机”没有记录,输入“高清晰数码摄像机”有记录,输入“高清晰 摄像机”没有记录,我就是想输入“高清晰 摄像机”时能搜索得到,就是内容包括“高清晰”和“摄像机”,而不是要“高清晰”和“摄像机”几个字连在一起才能搜到。不好意思,不知是否描述清楚,在问题判断上,我一般是每种情况试一下,代码调换一下,毕竟对ASP了解还不够

2006-01-13 23:29
快速回复:[求助]提交搜索 关键字 + 空格 出现问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017588 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved