| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2015 人关注过本帖
标题:[求助]一个棘手的产品订单数组查询问题…………
只看楼主 加入收藏
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
set rs1=server.createobject("adodb.recordset")
sql1="select * from 订单表"
rs1.open sql1,conntmp,1,1
for n=1 to rs1.recordcount '循环已经开始
set rs2=server.createobject("adodb.recordset")
sql2="select * from 产品表 where id="&rs1("产品ID") '需要根据rs1的变化来取值,以便正确得到rs2,也就是你的in要到这儿来
rs2.open sql2,conntmp,1,1 '在循环中打开
......显示内容可以根据需要分别调用rs1(字段)和rs2(字段)
在这个地方显示你的表格内容
订单价值=rs1(订单数量)*rs2(产品单价)
因为你有了一个in.所以rs2不是唯一的一条记录,你需要再来一个循环才能正确显示你的表.
rs1.movenext
rs2.close'这一句有没有无所谓,如果是iis6以前的版本那必须关了并nothing
next

不知道我这样的例子够不够清楚,如果还不清楚,那我帮不了你了.
当然,我的方法没有解决你一个订单里有好多产品的问题,你自己再进一步相办法解决吧.也就是循环中再加一个循环吧了,只是我的方法可能不是好办法.

[此贴子已经被作者于2006-12-4 13:05:05编辑过]


2006-12-04 12:11
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 

等等,等等,我试试先啊…………

[此贴子已经被作者于2006-12-4 14:07:10编辑过]


2006-12-04 14:01
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 

对不起,之前没有看清楚你的代码和注释,现在按你上面的做,可是只有订单的循环了,产品方面还是没有循环,值是有的,只是循环了第一条记录的值,而没有没数据库中再取其它产品相对应的值…………

代码…………

<%


'接收传递过来的订单编号
MCode=request("Mcode")
'查询订单表,rs
set rs= server.CreateObject("adodb.recordset")
sql = "select * from D_Order where M_Code='"&Mcode&"'"
'response.Write sql
rs.open sql,MM_Coon_STRING,1,1

'接收传递过来的产品订单的ID列表
a=request.Form("id")
if a<>"" then
b=split(a,",")

for i=0 to UBound(b)
if i = 0 then m=b(i)
if i <>0 then m=m&","&b(i)
next
m="("&m&")"
'查询产品数据库列表…………
for n=1 to rs.recordcount '循环已经开始

set rs1= server.CreateObject("adodb.recordset")
sql1 = "select * from Products where M_id in "&m
'response.Write sql
rs1.open sql1,MM_Coon_STRING,1,1

'以下是表格,开始循环…………
%>
<tr>
<td align="center" valign="middle"><img src="<%=rs1("M_Foto")%>" width="30" height="30" /></td>
<td align="center" valign="middle"><a href="../admin/Productdetail.asp?id=<%=rs("M_id")%>"><%=rs("M_Itemno")%></a></td>
<td align="center" valign="middle"><%=rs1("M_Description")%></td>
<td align="center" valign="middle"><%=rs("M_quantity")%></td>
<td align="center" valign="middle"><%=rs1("M_Unit")%></td>
<td align="center" valign="middle"><%=rs1("M_RMBPrice")%></td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle"><%=rs1("M_Master")%></td>
<td align="center" valign="middle"><%=(rs1("M_Master")*rs("M_quantity"))%></td>
<td align="center" valign="middle"><%=rs1("M_L")%>*<%=rs1("M_W")%>*<%=rs1("M_H")%></td>
<td align="center" valign="middle"><%=rs1("M_Cbm")%></td>
<td align="center" valign="middle"><%=rs1("M_Cbm")*rs("M_quantity")%></td>
<td align="center" valign="middle"></td>
</tr>
<%

rs.movenext
rs1.close'这一句有没有无所谓,如果是iis6以前的版本那必须关了并nothing
set rs1=nothing
next
%>


<tr>
<td colspan="14" align="right" valign="middle">
<br />
<br />
<br />
<br />
&nbsp;&nbsp;
&nbsp;&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <div id="Layer3">
<div id="Layer4"><img src="../Images/qian.gif" width="98" height="135" /></div>
</div></td>
</tr>
</table>

<%
rs.close
%>


2006-12-04 15:12
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
你能不能把我说的所有的话都看清楚了再做啊?
因为你有了一个in.所以rs2不是唯一的一条记录,你需要再来一个循环才能正确显示你的表.

不知道我这样的例子够不够清楚,如果还不清楚,那我帮不了你了.
当然,我的方法没有解决你一个订单里有好多产品的问题,你自己再进一步相办法解决吧.也就是循环中再加一个循环吧了,只是我的方法可能不是好办法.

我已经告诉你了,你需要再来一次循环,把rs2中的东东也循环出来啊.晕~~~~~~~~~~~~

2006-12-04 15:17
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
set rs1= server.CreateObject("adodb.recordset")
sql1 = "select * from Products where M_id in "&m
'response.Write sql
rs1.open sql1,MM_Coon_STRING,1,1
for m=1 to rs1.recordcount '进行第二个表的循环
'以下是表格,开始循环…………
%>
<tr>
<td align="center" valign="middle"><img src="<%=rs1("M_Foto")%>" width="30" height="30" /></td>
<td align="center" valign="middle"><a href="../admin/Productdetail.asp?id=<%=rs("M_id")%>"><%=rs("M_Itemno")%></a></td>
<td align="center" valign="middle"><%=rs1("M_Description")%></td>
<td align="center" valign="middle"><%=rs("M_quantity")%></td>
<td align="center" valign="middle"><%=rs1("M_Unit")%></td>
<td align="center" valign="middle"><%=rs1("M_RMBPrice")%></td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle"><%=rs1("M_Master")%></td>
<td align="center" valign="middle"><%=(rs1("M_Master")*rs("M_quantity"))%></td>
<td align="center" valign="middle"><%=rs1("M_L")%>*<%=rs1("M_W")%>*<%=rs1("M_H")%></td>
<td align="center" valign="middle"><%=rs1("M_Cbm")%></td>
<td align="center" valign="middle"><%=rs1("M_Cbm")*rs("M_quantity")%></td>
<td align="center" valign="middle"></td>
</tr>
<%
rs1.monenext
next
rs.movenext


2006-12-04 15:20
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
好累.
这样写了总应该清楚了吧?

2006-12-04 15:22
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
不行啊,出现传值错误啊…………

0x80040E14错误

这里哦…………

sql1 = "select * from Products where M_id in "&m

2006-12-04 15:42
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 

我改了for m=1 to rs1.recordcount '进行第二个表的循环
把m换个参数后,能显示,不过跟我之前调试的一次结果相同,那就是多项重复了…………


图片附件: 游客没有浏览图片的权限,请 登录注册


2006-12-04 15:46
tang688
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1219
专家分:35
注 册:2004-12-25
收藏
得分:0 
for i=0 to UBound(b)
if i = 0 then m=b(i)
if i <>0 then m=m&","&b(i)
next
m="("&m&")"
这一段我看不懂.
sql1 = "select * from Products where M_id in "&m
再说,这一句你前面要是不出错,现在也不会出错吧?

2006-12-04 15:46
在编程中沦落
Rank: 2
等 级:新手上路
威 望:4
帖 子:411
专家分:0
注 册:2005-12-25
收藏
得分:0 
这个是我之前通过表单传递过来的产品ID
就是产品ID数组,通过表单FORM过来的参数

[此贴子已经被作者于2006-12-4 15:55:13编辑过]


2006-12-04 15:54
快速回复:[求助]一个棘手的产品订单数组查询问题…………
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016339 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved