dw+asp+access 按照复选框的选择条件在数据库进行搜索的问题
三组复选框,一组是品牌,共二十多个选项,复选框名字相同,值不同,可以多选;一组是功能,共八个选项,名称相同值不同,可以多选;还有一组是价格,共三个区间,单选。然后综合这三...
三组复选框,一组是品牌,共二十多个选项,复选框名字相同,值不同,可以多选; 一组是功能,共八个选项,名称相同值不同,可以多选;还有一组是价格,共三个区间,单选。然后综合这三大组的选项在数据库中找出符合条件的型号。
请问,如何实现?
最好能给段代码。 分不多了见谅。
是我没有说清楚,每个单独的复选框的值对应数据库中的一个字段名称。 这样怎么写?
each a 代表什么?这些品牌的名字可不是相似的,怎么打这个循环呢?还有如果只选择一个品牌用AND, 连个以上品牌是不是要用OR, 最后一句代码可以么?我是新手,不好意思问这么多。 展开
请问,如何实现?
最好能给段代码。 分不多了见谅。
是我没有说清楚,每个单独的复选框的值对应数据库中的一个字段名称。 这样怎么写?
each a 代表什么?这些品牌的名字可不是相似的,怎么打这个循环呢?还有如果只选择一个品牌用AND, 连个以上品牌是不是要用OR, 最后一句代码可以么?我是新手,不好意思问这么多。 展开
2个回答
展开全部
就是给你一串string叫你写sql啊……
String sql = "select * from ? where (品牌 = '" + 第一个选中的框.value + "'";
while(还有选中的品牌框)
{
sql += "or 品牌 = '" + 选中的框.value + "'";
}
sql += ") and ( 功能='" + 第一个选中的框.value + "'";
while(还有选中的功能框)
{
sql += "or 功能= '" + 选中的框.value + "'";
}
sql += ") and 价格 between " + 选中的框.minvalue + " and " + 选中的框.maxvalue;" ;
大致是这样的,中间可能有些小错误,你在执行sql之前把这个string输出,检查一下语句是否有错就可以了。
把我上面的sql中的?替换成对应的table,品牌替换品牌对应的字段名,不就好了,orz……
顺便,我之所以写成这样是因为我不确定你的图形界面是什么个东西
所有中文部分都是伪代码。
至于foreach a
那个是.net中的一个命令,格式是
foreach(type name in collection)
{
todo the very thing you want to deal with
every object in collection.
}
你可以理解成
for(operator p = collection.begin(); p < collection.end(); p++)
{
}
p就是我上面的那个name。变量名
之所以写因为是因为我觉得英文描述这个比较方便。
最后说一下,其实我也没看懂那位同学写的东东。
&在.net和c++中都不是字符串操作,完全不知道它在干啥
然后foreach后面跟个next是啥米我也不知道,写代码又不加分号……
mid又是哪里的函数?……@@@@
String sql = "select * from ? where (品牌 = '" + 第一个选中的框.value + "'";
while(还有选中的品牌框)
{
sql += "or 品牌 = '" + 选中的框.value + "'";
}
sql += ") and ( 功能='" + 第一个选中的框.value + "'";
while(还有选中的功能框)
{
sql += "or 功能= '" + 选中的框.value + "'";
}
sql += ") and 价格 between " + 选中的框.minvalue + " and " + 选中的框.maxvalue;" ;
大致是这样的,中间可能有些小错误,你在执行sql之前把这个string输出,检查一下语句是否有错就可以了。
把我上面的sql中的?替换成对应的table,品牌替换品牌对应的字段名,不就好了,orz……
顺便,我之所以写成这样是因为我不确定你的图形界面是什么个东西
所有中文部分都是伪代码。
至于foreach a
那个是.net中的一个命令,格式是
foreach(type name in collection)
{
todo the very thing you want to deal with
every object in collection.
}
你可以理解成
for(operator p = collection.begin(); p < collection.end(); p++)
{
}
p就是我上面的那个name。变量名
之所以写因为是因为我觉得英文描述这个比较方便。
最后说一下,其实我也没看懂那位同学写的东东。
&在.net和c++中都不是字符串操作,完全不知道它在干啥
然后foreach后面跟个next是啥米我也不知道,写代码又不加分号……
mid又是哪里的函数?……@@@@
展开全部
先回答 1015858328 :你没看到人家写的是asp吗?asp借用的vb的语法,别跟我说你不知道vb里面不需要分号,另外,计算机语言千千万,你不知道任何一个函数都没什么奇怪的。
再来解释for each a in
for还是跟next配对,each a in request("brandid")是说,在request获取的对象集合里,每一个名称为“brandid”的元素的值。a,可以用任何变量名代替,在这里只是暂时借用一下。对应的表单里面的多选按钮是这样写的:(假如所有品牌名称是放在一个表brand里)
<%rs.open "brand",conn,1,1
for i=1 to rs.recordcount%>
<input type="checkbox" name="brandid" value="<%=rs("brandid")%>"><%=rs("brandname")%>
<%rs.movenext
next
rs.close%>
其实,当数据提交上去之后,request("brandid")是一个数组,里面包含了所有客户端选中了的那些brandid的值,这段循环语句的意思就是把这些值都循环一遍,用来组成一个sql查询字符串。
brandid:品牌表中品牌对应id
useid:功能表中功能对应id
priceid:价格区间对应id
sql1=""
for each a in request("brandid")
sql1=sql1&" or brandid="&a
next
sql1=" and ("&mid(sql1,4)&")"
sql2=""
for each a in request("useid")
sql2=sql2&" or useid="&a
next
sql2=" and ("&mid(sql2,4)&")"
sql="select * from table where priceid="&request("priceid")&sql1&sql2
再来解释for each a in
for还是跟next配对,each a in request("brandid")是说,在request获取的对象集合里,每一个名称为“brandid”的元素的值。a,可以用任何变量名代替,在这里只是暂时借用一下。对应的表单里面的多选按钮是这样写的:(假如所有品牌名称是放在一个表brand里)
<%rs.open "brand",conn,1,1
for i=1 to rs.recordcount%>
<input type="checkbox" name="brandid" value="<%=rs("brandid")%>"><%=rs("brandname")%>
<%rs.movenext
next
rs.close%>
其实,当数据提交上去之后,request("brandid")是一个数组,里面包含了所有客户端选中了的那些brandid的值,这段循环语句的意思就是把这些值都循环一遍,用来组成一个sql查询字符串。
brandid:品牌表中品牌对应id
useid:功能表中功能对应id
priceid:价格区间对应id
sql1=""
for each a in request("brandid")
sql1=sql1&" or brandid="&a
next
sql1=" and ("&mid(sql1,4)&")"
sql2=""
for each a in request("useid")
sql2=sql2&" or useid="&a
next
sql2=" and ("&mid(sql2,4)&")"
sql="select * from table where priceid="&request("priceid")&sql1&sql2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询