|
主题: 关于多项搜索的新问题??
|
 sund
职务:普通成员
等级:1
金币:0.0
发贴:31
注册:2001/5/20 23:16:15
|
#12001/6/2 23:42:35
我看了面包的多项搜索教程,有一个问题想请教,在做价格条件项时我想用一个下拉式菜单表示限定价格(如1-100元,100-500元.....)而不是用两个文本框,在一个取值项中该如何做。
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:2.0
发贴:654
注册:2000/12/19 10:59:22
|
#22001/6/3 1:18:36
?不是很难呀,不过最好设置为少于100或者少于500,否则比较麻烦些。现在只要菜单中设置值为100、500,在记录集中设置字段小于变量即可。
|
 sund
职务:普通成员
等级:1
金币:0.0
发贴:31
注册:2001/5/20 23:16:15
|
#32001/6/3 11:20:09
我现在用的就是你说的方法。但我想知道如何限定价格范围在第二项中是100-500而不是小于500。该如何做?谢了。
|
 5D荣誉斑竹
职务:普通成员
等级:2
金币:2.0
发贴:654
注册:2000/12/19 10:59:22
|
#42001/6/3 11:47:40
这个要看具体情况了,或者可以设隐藏域为公用,如值为“100”,在语句中共用该变量。。。。。。所以说具体情况具体解决,好好想想,不会难度很大的。
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
|
#52001/6/4 13:06:24
用一 select case price case "100" sqlstr=... case "100-500" sqlstr="select * form table while price>100 and price<500" .. end select cnn.execute sqlstr
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
|
#62001/6/4 13:06:42
用一 select case price case "100" sqlstr=... case "100-500" sqlstr="select * form table where price>100 and price<500" .. end select cnn.execute sqlstr
|
 寂寞菜鸟
职务:普通成员
等级:1
金币:1.0
发贴:173
注册:2001/2/24 17:47:55
|
#72001/6/4 17:17:49
在学习UD的同时,看看SQL,ASP基本知识还是有好处的,毕竟UD还不是很完善。我们的目的是通过学习UD而掌握ASP,你说呢?
|
 sund
职务:普通成员
等级:1
金币:0.0
发贴:31
注册:2001/5/20 23:16:15
|
#82001/6/5 23:54:20
germchen今天看了你给我的源码,先谢谢你。但是有地方不懂,cnn是指什么?我将源码加载后运行提示缺cnn对象。我尝试着用if语句做也不行。寂寞菜鸟说的没错我是打算好好学学ASP(总不能老是用UD来蒙人吧)但是也不是一朝一夕能掌握的。所以还得向大家多多请教。 以下是我添加后的代码,能帮我看看吗? <% Dim rs1__MMColParam rs1__MMColParam = "1" if (Request.QueryString("type") <> "") then rs1__MMColParam = Request.QueryString("type") %> <% Dim rs1__MMflower_price rs1__MMflower_price = "1" if (Request.QueryString("price") <> "") then rs1__MMflower_price = Request.QueryString("price") select case price case "100" sqlstr="select * form table where price<100" case "100-500" sqlstr="select * form table where price>100 and price<500" end select cnn.execute sqlstr %> --------------------------------------------- <% set rs1 = Server.CreateObject("ADODB.Recordset") rs1.ActiveConnection = MM_connshop_STRING rs1.Source = "SELECT * FROM flower WHERE type = '" + Replace(rs1__MMColParam, "'", "''") + "'and " + Replace(rs1__MMflower_price, "'", "''") + "" rs1.CursorType = 0 rs1.CursorLocation = 2 rs1.LockType = 3 rs1.Open() rs1_numRows = 0 %>
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
|
#92001/6/6 16:10:18
set cnn=server.createobject("adodb.connection") cnn.open "数据源" Set rsTest = Server.CreateObject("ADODB.Recordset") rsTest.CursorLocation = adUseClient '这样设置可减轻数据库负载 rsTest.CursorType = adOpenStatic '游标需要前后移动 rsTest.CacheSize = rowcount '设置这个选项会提高性能 select case request.querystring("price") case "100": sqlstr="select * form table where price<100" case "100-500": sqlstr="select * form table where price>100 and price<500" .... end select rsTest.Open sqlstr, Cnn, , , adCmdText rsTest.PageSize = rowcount '设置每一页的记录数 ...
编辑历史:[这消息被germchen编辑过(编辑时间2001-06-06 16:16:08)] [这消息被germchen编辑过(编辑时间2001-06-06 16:17:59)]
|
 sund
职务:普通成员
等级:1
金币:0.0
发贴:31
注册:2001/5/20 23:16:15
|
#102001/6/7 0:24:04
是否非得要将ADO的connection和Recordset结合使用才能完成。connection对象我还没用到过,我得看看书上的介绍。回头有不懂的再问你可以吗? 有两个问题请教:1.是否需要返回到记录set rstest=cn.Execute(strsql) 2.rsTest.Open sqlstr, Cnn, , , adCmdText 打开记录集后面的几个看不懂。
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
|
#112001/6/7 10:30:37
set cnn=server.createobject("adodb.connection") ... rsTest.Open sqlstr, Cnn, , , adCmdText其实与 ... rstest.CursorType = 0 rstest.CursorLocation = 2 rstest.LockType = 3 rstest.Open() 是一样效果的。 用了rsTest.Open sqlstr, Cnn, , , adCmdText就不必再用set rstest=cnn.execute(sqlstr)了
|
 sund
职务:普通成员
等级:1
金币:0.0
发贴:31
注册:2001/5/20 23:16:15
|
#122001/6/7 15:56:01
germchen你好:你给的代码放上去但是我没法在UD中操作recordest中的数据了因为在数据行为栏里找不到定义的数据集了,代码错了吗?将游标类型改后总是说数据冲突,请问UD中有没有直接对connection操作的指令。问题太多希望没有烦到你。
<% Dim rs1__MMColParam rs1__MMColParam = "1" if (Request.QueryString("flower_price") <> "") then rs1__MMColParam = Request.QueryString("flower_price") %> <% set cnn=server.createobject("adodb.connection") strconnection ="dsn=dsshop;" cnn.open strconnection set rs1 = Server.CreateObject("ADODB.Recordset") rs1.ActiveConnection = cnn rs1.Source = "SELECT * FROM flower WHERE flower_price = " + Replace(rs1__MMColParam, "'", "''") + "" select case request.querystring("price") case "100": sqlstr="select * form table where price<100" case "100-500": sqlstr="select * form table where price>100 and price<500" end select rs1.CursorType = 0 rs1.CursorLocation = 2 rs1.LockType = adOpenStatic rs1.Open() rs1_numRows = 0 %>
|
 绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
注册:2000/12/28 12:10:01
|
#132001/6/7 16:49:29
你问我UD中有没有直接对connection操作的指令,说实话,我从来不用UD,因为不喜欢,而且功能也不好,所以一般我是在FP中设好框架然后手写代码的。 其实你也可以这样用的呀 <% Dim rs1__MMColParam rs1__MMColParam = "1" if (Request.QueryString("flower_price" <> "" then rs1__MMColParam = Request.QueryString("flower_price"
set rs1 = Server.CreateObject("ADODB.Recordset") rs1.ActiveConnection = MM_connshop_STRING
select case request.querystring("price") ... case "100": rs1.source="select * form table where price<100" case "100-500": rs1.source="select * form table where price>100 and price<500" ... end select rs1.CursorType = 0 rs1.CursorLocation = 2 rs1.LockType = adOpenStatic rs1.Open() rs1_numRows = 0 %>
编辑历史:[这消息被germchen编辑过(编辑时间2001-06-07 16:53:03)]
|