asp模糊查询的一些问题,高手进
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp模糊查询的一些问题,高手进相关的知识,希望对你有一定的参考价值。
我在asp模糊搜索时碰到一些问题,代码可以使用但我仔细研究了一下运行结果,发现存在大量的问题。我不知道是不是我的代码问题还是asp本身问题所以请教一下高手。出现的问题有几个方面
一、当搜索结果只有1条时确显示三条数据
二、当搜索结果只有1条时似乎mid函数没有发挥作用。我截取的是200个字符,却显示的是全部内容。
三、有大部分数据条件匹配却搜索不到
为方便各位高手阅读我精简了一下代码
<%
Dim word’word函数是关键字
If request.querystring("word")="" then
word=trim(request.Form("keyword"))
else
word=trim(request.QueryString("word"))
End if
Word=Replace(Word,","," ")
Word=Replace(Word,","," ")
Wordlist=split(trim(word)," ")
%>
<%
Dim i,searchurl
If word<>"" then
For i=0 to ubound(Wordlist)
SearchSql=SearchSql & "title like '%"&Wordlist(i)&"%' or "
SearchSql=SearchSql & "content like '%"&Wordlist(i)&"%' or "
Next
SearchSql=left(SearchSql,(len(SearchSql)-3))
Set rs=server.CreateOBject("ADODB.ReCordSet")
Sql="select id,title,date,content,class from LM_article where "&SearchSql
rs.open sql,conn,1,1
If not(rs.eof and rs.bof) Then
rs.PageSize=5
if page=0 then page=1
pages=rs.pagecount
if page > pages then page=pages
rs.AbsolutePage=page
If pages="" then
pageinfo="抱歉,没有找到关于"&word&"的文章"
else
pageinfo="www.key28.cn上共有"&pages&"条包含"&word&"的查询结果"&sql&""
end if
%>
<div class="search1"><%=pageinfo%></div>
<%
For j=1 to rs.PageSize
searchurl="Article/"&rs("date")&"/"&rs("id")&".html"
contentRs=rs("content")
contentRs=RemoveHTMLTag(contentRs)
For a=0 to ubound(Wordlist) '转换内容为关键字打头
contentNum=instr(contentrs,Wordlist(a))
if contentNum<>0 then
contentrs=server.htmlencode(mid(contentrs,contentnum,200))
exit for
end if
Next
For s=0 to ubound(Wordlist)
contentrs=replace(contentrs,wordlist(s),"<font color=#0000FF>"&wordlist(s)&"</font>")
Next
%>
<div class="search2"><a href=<%=searchurl%>><%=rs("title")%></a><br /><%=contentrs%><br /><font color="#008000"><%=searchurl%></font></div>
<div class="search3"></div>
<%
rs.movenext
if rs.eof then exit for
next
rs.close
set rs=nothing
End if
End if
%>
朋友们,在For i=0 to ubound(Wordlist) 里大家有没有注意一下有这个SearchSql=left(SearchSql,(len(SearchSql)-3))
所以查询的sql完整的语句将是Sql="select id,title,date,content,class from LM_article where content like '%"&Wordlist(i)&"%' or title like '%"&Wordlist(i)&"%' " 希望大家能帮忙,程序演示在http://www.key28.cn/ss.asp
改为while not rs.eof... wend试一试 看看能不能解决你的第一个问题
contentNum=instr(contentrs,Wordlist(a))
contentNum有多个值,取的是最后一个存在关键字的位置
如果用的是access可能会遇到匹配不到的情况,但sql server好像没有这个问题 参考技术A For i=0 to ubound(Wordlist)
SearchSql=SearchSql & "title like '%"&Wordlist(i)&"%' or "
SearchSql=SearchSql & "content like '%"&Wordlist(i)&"%' or " '这里当循环结束时会多产生一个or
Next
以上是关于asp模糊查询的一些问题,高手进的主要内容,如果未能解决你的问题,请参考以下文章