数据库提交查询如何实现满足全部条件?谢谢

bryankoul 2008-03-30 10:45:37
数据库提交查询如何实现满足全部条件?谢谢

area=trim(request("area"))
sql="select * from user where area='"&area&"

area是从前面一个表提交的,比如area在数据库里面是浦东,浦西(两个),我在前面一个表里面的表单选项有浦东,浦西,全部。
浦东和浦西都能反馈出来,但是如果我要全部(包括浦东和浦西)的where的表达式该如何写呢或者前面可以做哪些判断?
谢谢各位

...全文
287 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhujinqiang 2008-04-02
SQL注入舍你其谁
直接把提交过来的数据直接拚到SQL语句中?
回复
qwertxp 2008-04-01
LZ真懒,非的直接把提交过来的数据直接拚到SQL语句中。
SQL注入舍你其谁?
回复
laowan688 2008-04-01
路过
回复
sheshijie 2008-04-01
楼上正解
回复
starsong 2008-04-01
SQL注入舍你其谁
回复
netwar 2008-03-31
其实你可以换种方式
想想,查询全部,就相当于没条件,
我们可以假如初始化时
area=trim(request("area"))
strSQL="select * from [user] where 1=1 "
这个条件永远成立,然后再
if area<>"" then strSQL=strSQL & " and area='" & area & "'"

拼接上面的语句,
回复
bryankoul 2008-03-30
[Quote=引用 11 楼 luxu001207 的回复:]
......
if area="全部" then
whereStr=" where area='浦东' and area='浦西' "
else
whereStr=" where area='"&area&"'"
end if
...
sql="select * from user "&whereStr
[/Quote]

谢谢,实现了,纠正一下,是whereStr=" where area='浦东' or area='浦西' "
回复
Atai-Lu 2008-03-30
晕,老写成and...应该是whereStr=" where area='浦东' or area='浦西' "
回复
Atai-Lu 2008-03-30
......
if area="全部" then
whereStr=" where area='浦东' and area='浦西' "
else
whereStr=" where area='"&area&"'"
end if
...
sql="select * from user "&whereStr
回复
bryankoul 2008-03-30
[Quote=引用 9 楼 luxu001207 的回复:]
或者,选项里的全部选项的value="浦东,浦西"
然后
where instr("&area&",area)>0
[/Quote]

谢谢,我试试
回复
Atai-Lu 2008-03-30
或者,选项里的全部选项的value="浦东,浦西"
然后
where instr("&area&",area)>0
回复
bryankoul 2008-03-30
[Quote=引用 7 楼 luxu001207 的回复:]
晕...
那就加个判断啊,要不用instr来写sql语句
if area="全部" then
...
else
...
end if
[/Quote]

这个我当然想到了,问题是if area="全部" then area=什么呢,很明显where area='"&area&" 是要求表单内容的,你明白吗?我想我思路很清楚,就好比,area='"&area&" ('"&area&" 反馈了前面表单的内容,如果表单是浦东,那么area=“浦东”),但是如果是全部呢?很明显如果if area=“全部” then then area=×? 很明显×是不行的,明白吗?
回复
Atai-Lu 2008-03-30
晕...
那就加个判断啊,要不用instr来写sql语句
if area="全部" then
...
else
...
end if
回复
bryankoul 2008-03-30
[Quote=引用 4 楼 luxu001207 的回复:]
引用 3 楼 luxu001207 的回复:
搜索表中的所有内容, 可以省略where子句
如果是搜索浦东、浦西,可以用where area='浦东' and area='浦西'

sorry 应该是where area='浦东' or area='浦西'
[/Quote]

我现在是从前面的页面提交表单来的,表单中是全部的话如何处理?当然表单是浦东或浦西,我的where语句能判断
回复
bryankoul 2008-03-30
[Quote=引用 3 楼 luxu001207 的回复:]
搜索表中的所有内容, 可以省略where子句
如果是搜索浦东、浦西,可以用where area='浦东' and area='浦西'
[/Quote]
对不起,请看清我的描述

area是从前面一个页面中的表提交的,比如area在数据库里面是浦东,浦西(两个),我在前面一个表里面的表单选项有浦东,浦西,全部。
浦东和浦西都能筛选出来,但是如果我要全部(包括浦东和浦西)的where的表达式该如何写呢或者前面可以做哪些判断?
回复
Atai-Lu 2008-03-30
[Quote=引用 3 楼 luxu001207 的回复:]
搜索表中的所有内容, 可以省略where子句
如果是搜索浦东、浦西,可以用where area='浦东' and area='浦西'
[/Quote]
sorry 应该是where area='浦东' or area='浦西'
回复
Atai-Lu 2008-03-30
搜索表中的所有内容, 可以省略where子句
如果是搜索浦东、浦西,可以用where area='浦东' and area='浦西'
回复
bryankoul 2008-03-30
[Quote=引用 1 楼 rbwang 的回复:]
表里面只有浦东和浦西连个区域吗?
如果是两个区域就直接select * from user得了
[/Quote]

还有别的字段,我举了一个字段,但是你说select * from user,和我的问题无关,并且我已经select *了,我指where的表达式,谢谢
回复
rbwang 2008-03-30
表里面只有浦东和浦西连个区域吗?
如果是两个区域就直接select * from user得了
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-03-30 10:45
社区公告
暂无公告