比较不错的asp单表单字段多条件查询
2018-09-06 11:55
用途:文章表内文章关键字查询
查询格式:百度google百度好还是google好百度+google(也可不输入条件全部查询)
<!--#includefile=conn.asp-->
<%
FunctionSearshSQL(Tname,Lname,Str)Tname-表名Lname-列名Str-查询的字符
IfTrim(Str)=then
MySql=Select*From&Tname
Else
Str=SqlEncode(Str)预处理查询字符串
ArrStr=split(Str,)用空格分割处理后字符串
Umax=Ubound(ArrStr)分割后数组上维,确定分割成关键词的个数
IfUmax>0Then关键词中多个空格的处理,从第2维开始处理
Fori=1toUmax
StrTemp=ArrStr(i)
IfTrim(StrTemp)=ThenStrTemp=/~~~~~/分割成的元素为空用特殊字符代替
Sql=Sql&Or&Lname&like%&StrTemp&%
Next
EndIf
MySql=Select*From&Tname&where&Lname&like%&ArrStr(0)&%&Sql
Do
j=InStr(1,MySql,%/~~~~~/%,1)
Ifj=0Then
ExitDo
EndIf
MySql=Replace(MySql,Or&Lname&like%/~~~~~/%,)
Loop
EndIF
SearshSQL=MySql
endfunction
FunctionSqlEncode(Str)格式化字符串
str=replace(str,,)先把左右的全角空格替换成半角空格
str=trim(str)
str=replace(str,[,)
str=replace(str,;,)
str=replace(str,,)
str=replace(str,_,)
str=replace(str,%,)
str=replace(str,+,)
str=replace(str,,)
sqlencode=str
endfunction
%>
<%
sql=SearshSQL(article,coments,萝卜+白菜狗熊)+orderby..(排序)
Setrs=Server.Createobject(ADODB.RECORDSET)
rs.Opensql,conn,1,1
ifnotrs.eofthen
下面的自己写