asp-classic - 需要帮助来选择和循环表格 asp 经典
问题描述
我需要一些帮助才能以正确的方式循环。我错过了一些东西。
我必须从购物车表中选择一个订单,然后通过另一个表中的产品和销售公司地址向客户发送确认邮件。
问题是 1 个订单中的产品可能来自 2 个不同的公司,所以我需要先显示公司 1 的产品,然后显示公司 1 的地址,然后显示公司 2 的产品,然后显示公司 2 的地址。
所以它需要看起来像这样。
产品 1 产品 2
公司名称 1 地址 1 邮编 1 城市 1
产品 3 产品 4
公司名称 2 地址 2 邮编 2 城市 2
这就是我现在所拥有的。
sql = " SELECT * FROM cart WHERE ordernummer = "&ordernummer&" group by userId"
set rs = conn.Execute (sql)
do until rs.eof
uId=rs("userId")
sql7 = " SELECT * FROM cart WHERE userId = "&uId&""
set rs7 = conn.Execute (sql7)
do until rs7.eof
art=art&"<br>"&rs7("artikel")&" "&rs7("pris")&" kr"
rs7.movenext
loop
sql3 = " SELECT * FROM users WHERE userId = "&uId&""
set rs3 = conn.Execute (sql3)
foretagsnamn=rs3("foretagsnamn")
adress=rs3("adress")
postnr=rs3("postnr")
postadress=rs3("postadress")
email=rs3("email")
hamtatext=rs3("hamtatext")
kartlank=rs3("kartaemaillink")
companyinfo="<br><br>"&foretagsnamn&"<br>" &_
adress&"<br>" &_
postnr&"<br>" &_
postadress&"<br>" &_
"<a href=mailto:"&email&" style='text-decoration:none;color:#6d6d72;' target='_blank'>"&email&"</a><br>" &_
"<a href="&kartlank&" target='_blank' style='text-decoration:none;color:#F90;'>Se karta</a><br>" &_
"Du kan nu hämta dina varor: <span style='color:#F90;'>"& hamtatext &"</span><br><br>"
companyinfo2=companyinfo2+companyinfo
companyinfo=""
art2=art2+art
art = ""
rs.movenext
loop
message="<br>"&art2&companyinfo2
response.write message&"<br>"
数据库看起来像这样。其中 userId 是不同的公司。
但是这样一来,它会显示所有产品,然后仅显示公司 1 信息。我已经测试了这么多不同的变体,但我做错了。因此,任何输入都非常感谢,谢谢。
解决方案
这是一个 sql 命令,它将在一个记录集中提供所有信息,然后您可以编写每个产品线,当用户 ID 更改时,然后您写入以前的公司地址(您在变量中和以前一样)。
sql="select * from cart c join users u on c.userID=u.userID where c.ordernummer = "&ordernummer&" group by c.userId"
上面的 sql 在两个表中的列 userID 上将两个表连接在一起。表名后面的 c 和 u 只是这些表的较短名称。您也可以使用全名。
然后,在 do until 循环中,您写下公司地址信息,然后检查 do until 循环中的第一行,检查 rs.userID 是否与变量 userID 不同有保存,如果有,写地址。此外,在没有更多行之后,您还需要在循环外写上最后一家公司的地址:)
完整代码(尽可能多地使用您的代码):
sql = " select * from cart c join users u on c.userID=u.userID where c.ordernummer = "&ordernummer&" group by c.userId"
set rs = conn.Execute (sql)
uId=0
do until rs.eof
if uID<>rs("userId") and uID>0 then
'This next row is a new company, Write the company information here, before getting new info and writing new rows.
companyinfo="<br><br>"&foretagsnamn&"<br>" &_
adress&"<br>" &_
postnr&"<br>" &_
postadress&"<br>" &_
"<a href=mailto:"&email&" style='text-decoration:none;color:#6d6d72;' target='_blank'>"&email&"</a><br>" &_
"<a href="&kartlank&" target='_blank' style='text-decoration:none;color:#F90;'>Se karta</a><br>" &_
"Du kan nu hämta dina varor: <span style='color:#F90;'>"& hamtatext &"</span><br><br>"
response.write companyinfo&"<br />"
end if
uId=rs("userId")
foretagsnamn=rs("foretagsnamn")
adress=rs("adress")
postnr=rs("postnr")
postadress=rs("postadress")
email=rs("email")
hamtatext=rs("hamtatext")
kartlank=rs("kartaemaillink")
'Do a response.write of this data here for each row below.
art=art&"<br>"&rs("artikel")&" "&rs("pris")&" kr"
response.write art&"<br />"
art = ""
rs.movenext
loop
'Remeber to write the last company data outside of the loop aswell:
companyinfo="<br><br>"&foretagsnamn&"<br>" &_
adress&"<br>" &_
postnr&"<br>" &_
postadress&"<br>" &_
"<a href=mailto:"&email&" style='text-decoration:none;color:#6d6d72;' target='_blank'>"&email&"</a><br>" &_
"<a href="&kartlank&" target='_blank' style='text-decoration:none;color:#F90;'>Se karta</a><br>" &_
"Du kan nu hämta dina varor: <span style='color:#F90;'>"& hamtatext &"</span><br><br>"
response.write companyinfo&"<br />"
希望能帮助到你。
推荐阅读
- c# - 使用依赖属性解决“无法在静态上下文中访问非静态属性”的另一种方法
- r - 如果变量名称出现在列表中,则进行变异
- vba - VBA可以加载插件的所有引用吗
- vb.net - 使用列表从数据表中获取列
- tomcat - Tomcat9 相对于上下文路径的重写规则
- java - 无法使用可打开的嵌入式 postgresql 运行 flyways
- r - 如果两个值相等,则将下一行中的值加 1
- python - 我想在 django 的后台保持一个很长的进程运行
- c++ - IShellWindows 和 IWebBrowser2 对象是否总是不在进程中?
- node.js - npm 错误:通过 CLI 构建创建反应应用程序时找不到模块“.../immer.js”