ASP中多条件查询

<!--#includefile="conn.asp"--><%ifrequest.querystring("act")="cha"Thenexec="select*fr... <!--#include file="conn.asp" -->
<%
if request.querystring("act")="cha" Then
exec="select * from juanban where 材质 like '"&request.form("caizhi")&"' or 规格 like '"&request.form("guige")&"' or 产地 like '"&request.form("chandi")&"' or 货源 like '"&request.form("huoyuan")&"'"
else
exec="select * from juanban where 1=1"
end if
set rs2=server.createobject("adodb.recordset")
rs2.open exec,conn,1,1
do while not rs2.eof %>
如图
要求某个条件为空时不影响其他的,可以单条件搜索,也可以多条件搜索,上面这段代码怎么改?
如图
展开
 我来答
壳大阅读
2011-10-21 · TA获得超过535个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:304万
展开全部
直接改成下面这样就可以了:

<!--#include file="conn.asp" -->
<%
exec="select * from juanban where 1=1"

if request.querystring("act")="cha" Then

if request.querystring("caizhi")<>"" then
exec = exec & " or 材质 like '"&request.form("caizhi")&"'"
end

if request.querystring("guige")<>"" then
exec = exec & " or 规格 like '"&request.form("guige")&"'"
end

if request.querystring("chandi")<>"" then
exec = exec & " or 产地 like '"&request.form("chandi")&"'"
end

if request.querystring("huoyuan")<>"" then
exec = exec & " 货源 like '"&request.form("huoyuan")&"'"
end

end if
set rs2=server.createobject("adodb.recordset")
rs2.open exec,conn,1,1
do while not rs2.eof

%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松原百世木门
2011-10-21
知道答主
回答量:6
采纳率:0%
帮助的人:9万
展开全部
代码我就不写啦,给你思路,自己想出来的会一直记得,别人代码看一遍过几天就会忘记。

首先接收request传递参数,分开接收,在判断接收的后赋值的变量是否为空,

例如:

接收a=request.form(“a”)
b=request.form(“b”)
判断if a=“”and b<>"" then
执行条件查询(这里只需要查询a)
以此类推
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
缓步莫迟疑C
2011-10-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6412万
展开全部
<!--#include file="conn.asp" -->
<%
if request.querystring("act")="cha" Then
If request.form("caizhi")<>"" OR request.form("guige")<>"" OR request.form("chandi")<>"" OR request.form("huoyuan")<>"" Then
exec=""
If request.form("caizhi")<>"" Then exec=exec & " or 材质 like '"&request.form("caizhi")&"'"
If request.form("guige")<>"" Then exec=exec & " or 规格 like '"&request.form("guige")&"'"
If request.form("chandi")<>"" Then exec=exec & " or 产地 like '"&request.form("chandi")&"'"
If request.form("huoyuan")<>"" Then exec=exec & " or 货源 like '"&request.form("huoyuan")&"'"
exec="select * from juanban where" & Mid(exec,5)
Else
'条件都为空,自己处理一下
End If
else
exec="select * from juanban where 1=1"
end if
set rs2=server.createobject("adodb.recordset")
rs2.open exec,conn,1,1
do while not rs2.eof %>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式