关于多关键字查询

lmxw 2009-04-27 02:30:24
我想在自己的网站里边做个多关键字查询!每个关键字直接用空格连接!但如果两个关键字在同一个字段内没问题,如果在两个不同字段就查不到了,代码如下,我要怎么修改啊?
if request.form("Search")="" then
response.redirect "Recordadd1.asp"
response.End()
end if
keyword=request.form("Search")
keyword=replace(keyword,"'","’")
keyword=Rtrim(LTrim(keyword))
keywordtmp=split(keyword," ")
max=ubound(keywordtmp)
if max=0 then
sql1=sql1&" guname like '%" & keywordtmp(i) & "%' "
sql2=sql2&" gutel like '%" & keywordtmp(i) & "%' "
sql3=sql3&" address like '%" & keywordtmp(i) & "%' "
sql4=sql4&" pn like '%" & keywordtmp(i) & "%' "
else
for i=0 to max
if i=0 then
sql1=sql1&" (guname like '%" & keywordtmp(i) & "%' and "
sql2=sql2&" (gutel like '%" & keywordtmp(i) & "%' and "
sql3=sql3&" (address like '%" & keywordtmp(i) & "%' and "
sql4=sql4&" (pn like '%" & keywordtmp(i) & "%' and "
else
if i=max then
sql1=sql1&" guname like '%" & keywordtmp(i) & "%') "
sql2=sql2&" gutel like '%" & keywordtmp(i) & "%') "
sql3=sql3&" address like '%" & keywordtmp(i) & "%') "
sql4=sql4&" pn like '%" & keywordtmp(i) & "%') "
else
sql1=sql1&" guname like '%" & keywordtmp(i) & "%' and "
sql2=sql2&" gutel like '%" & keywordtmp(i) & "%' and "
sql3=sql3&" address like '%" & keywordtmp(i) & "%' and "
sql4=sql4&" pn like '%" & keywordtmp(i) & "%' and "
end if
end if
next
end if
sql="select * from guest where "&sql1&" or "&sql2&" or "&sql3&" or "&sql4
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
Response.Write("<script languge='javascript'>alert('没有找到相应的记录'); window.location.href='RecordSearch.asp'</script>")
response.End()
end if
rs.PageSize=15
pagecount=rs.PageCount
page=int(request.QueryString ("page"))
if page<=0 then page=1
if request.QueryString("page")="" then page=1
rs.AbsolutePage=page
position=RS.PageSize*Page
pagebegin=position-RS.PageSize+1
if position<RS.RecordCount then
pagend=position
else
pagend= RS.RecordCount
end if
RowCount = RS.PageSize
Do While Not RS.EOF and rowcount>0
...全文
126 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
erdong988 2009-04-27
  • 打赏
  • 举报
回复
sql="select * from [guest] where "
for i=0 to max
if i<>0 then sql=sql & " and "
sql=sql&" (guname like '%" & keywordtmp(i) & "%' or "
sql=sql&" gutel like '%" & keywordtmp(i) & "%' or "
sql=sql&" address like '%" & keywordtmp(i) & "%' or "
sql=sql&" pn like '%" & keywordtmp(i) & ")"
next
dfboyxing 2009-04-27
  • 打赏
  • 举报
回复
进来瞧一下
lmxw 2009-04-27
  • 打赏
  • 举报
回复
在网上看了下别人的代码,我自己编写思路搞错了!
现在已经搞定了!谢谢大家!
lmxw 2009-04-27
  • 打赏
  • 举报
回复
我是想用多关键字来缩小搜索的范围,如果改OR,只要符合一个的都给列出来,那还不如只用一个关键字了!
lmxw 2009-04-27
  • 打赏
  • 举报
回复
我需要的就是要让多关键字来缩小搜索范围,如果改成OR,只要满足任意一个,都会显示,那还不如只要一个关键字了!
erdong988 2009-04-27
  • 打赏
  • 举报
回复
多关键字查询,要求多关键字都满足的话,最好指定包含关键字字段的数据项,否则很复杂。多对多……
建议,多关键字查询时,满足其中一个关键字即符合条件,这样的话把上面的 and 改成 or 即可。
lmxw 2009-04-27
  • 打赏
  • 举报
回复
Search是前一个页面的文本域的名称,keyword=replace(keyword,"'","’") 是英文单引换中文单引,防止不注意在文本框里输入了英文单引而出错!
rokerker 2009-04-27
  • 打赏
  • 举报
回复
keyword=request.form("Search")

在前面一个页面Search是什么?
为什么要这样做:keyword=replace(keyword,"'","’")

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧