一个数据库逻辑问题,不难,但很麻烦,求助
楼主deknight(追逐梦想)2006-12-23 14:47:55 在 Web 开发 / ASP 提问
我现在有5个下拉菜单
分别是
A B C D E,其中B C D 是联动的,A E是单独的
A里的内容:
请选择交易类别
出售
求购
B里的内容:
请选择商城名称
所有商城
商城1
商城2
...
C里:
请选择商城分区
所有分区
分区1
分区2
...
D里:
请选择商城服务器
所有服务器
服务器1
服务器2
...
E里:
请选择交易物品
物品1
物品2
...
=================
然后提交到搜索页
我希望能在各种组合下搜索出结果,而不是每项都必须选
例如:
A里的内容不选,既表示搜索出的结果有出售的也有求购的,或根据我的选择列出出售的或求购的
B里的内容必选,因为B不选的话,后面几个联动没有数据,如果选择的是"所有商城" 就提交了搜索,则提示没有选择具体的商城
C里可以选择所有分区或单独的某个分区,则列出的结果会是在B里选择的某个商城的
所有分区或某单独分区的内容
D里允许选择所有服务器或某单独服务器,列出的结果则根据ABC的条件,再列出所有服务器或某单独服务器的内容
E里可以选择"请选择交易物品"或某个具体物品,然后根据ABCD的条件列出所有物品或选择的某个物品的内容
以上,我该如何实现?
我不想
if request("a")="xx" then
sql=
rs.....
elseif request("a")="xx" and request("b")="xx" then
sql..
rs...
elseif request("a")="xx" and request("b")="xx" and request("c")="xx" then
sql..
rs...
...
这种逻辑应该如何做?或如何组合?
望高手指点!
问题点数:20、回复次数:7Top
1 楼deknight(追逐梦想)回复于 2006-12-23 14:56:20 得分 0
请高手速度出现!!!Top
2 楼deknight(追逐梦想)回复于 2006-12-23 15:07:35 得分 0
请高手速度出现!!!
Top
3 楼lingyu1983(sot)回复于 2006-12-23 15:32:21 得分 0
dim strwhere
strwhere=""
strwhere=" where 1=1 "
if len(trim(request("a")))<>0 then
strwhere=strwhere&" and a='"&a&"' "
end if
.
.
.
sql="select * from table"&strwhere
conn.execute("sql")Top
4 楼deknight(追逐梦想)回复于 2006-12-23 15:41:26 得分 0
楼上的, where 1=1会不会被过滤掉???
另外给个完整的行不?Top
5 楼deknight(追逐梦想)回复于 2006-12-23 15:54:11 得分 0
up!Top
6 楼deknight(追逐梦想)回复于 2006-12-23 16:09:14 得分 0
这样不知道成不成,高手指点:
======================
定义要查询的SQL语句
sql="select * from mytable"
'判断是否选择了交易类别
if request("a")<>"请选择交易类别" then
sql=sql
else
sql_name=" and "+"jylb='"& request("a") &"'"
sql=sql+sql_name
end if
'判断是否选择了商城
if request("b")="请选择商城名称" or request("b")="所有商城" then
sql=sql
else
sql_info=" and "+" scmc="& request("b") &""
sql=sql+sql_info
end if
....
类推,这样对不?Top
7 楼lingyu1983(sot)回复于 2006-12-23 16:11:30 得分 20
那个1=1是防止后面的SQL连接出错用的,大可以换成别的,只要保证最后的SQL格式不出现语法问题就行。dim strwhere
strwhere=""
strwhere=" where 1=1 "
if len(trim(request("a")))<>0 then
strwhere=strwhere&" and a='"&a&"' "
end if
.
这里是5个if语句,不是有5个下拉框吗?先判断传过来的数据是否为有效数据len(trim(request("a")))<>0
如果有效就就将 查询条件“and a='"&a&"' ” 加到strwhere后面,最后产生一个完整的查询条件
.
sql="select * from table"&strwhere
conn.execute("sql")
Top
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |








网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)