循环内部循环,最后一个循环的每一行都有记录计数
Loop inside loop with record count for each row of the last loop
我有 3 个 table:dbo.Category、dbo.SubCategory 和 dbo.Product,结构如下:
dbo.Category: (Category_ID, Category_name)
dbo.SubCategory: (SubCategory_ID, Category_ID, SubCategory_name)
dbo.Product: (Product_ID, Category_ID, SubCategory_ID, Product_name)
- 我需要一个循环来显示我所有的类别(来自类别table)
- 我需要第二个循环(在第一个循环内)来显示属于父类别的所有子类别。
- 我需要显示(带记录数)有多少产品有我的每个子类别。
例如,我需要这样的东西:
类别 1
--- 子类别 1 (7)
--- 子类别 2 (11)
类别 2
--- 子类别 5 (88)
--- 子类别 9 (36)
类别 3
--- 子类别 8 (0)
--- 子类别 22 (122)
我不熟悉经典 asp 和 vbscript,到目前为止我唯一能做的就是我的主要类别的第一个循环如下:
<%
dim Connect,RS_test,sql
Set Connect = Server.Createobject("ADODB.Connection")
Connect.Open = MM_sindesi_STRING
sql = "SELECT * FROM dbo.Category"
set RS_test = Connect.Execute(sql)
%>
<%
Do Until RS_test.Eof
%>
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td><%=RS_test("Category_name")%></td>
</tr>
</table>
<%
RS_test.MoveNext
Loop
%>
<%
Connect.Close()
Set RS_test = Nothing
Set Connect = Nothing
%>
上面的代码工作正常,但我唯一得到的是我的类别名称......
我努力在 Whosebug 中找到一些类似的问题,但不幸的是我没有找到任何东西......
您使用嵌套的 Do 循环
<%
set category = server.createobject("adodb.recordset")
SQL="SELECT * FROM dbo.Category"
category.open SQL,Connect,1,3
%>
<%i=0%>
<% Do while not category.eof %>
<%i=i+1%>
<%=i> Category Record
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td><%=category("Category_name")%></td>
</tr>
<%
cat_id=category(Category_ID)
set sub_category = server.createobject("adodb.recordset")
SQL="SELECT * FROM dbo.SubCategory where Category_Id="&cat_id&""
sub_category.open SQL,Connect,1,3%>
<%j=0%>
<% Do while not sub_category.eof %>
<%j=j+1%>
<%=j%> Record Sub Category
<tr>
<td><%=category("SubCategory_name")%></td>
</tr>
<%
sub_category.MoveNext
Loop
%>
</table>
<%
category.MoveNext
Loop
%>
我有 3 个 table:dbo.Category、dbo.SubCategory 和 dbo.Product,结构如下:
dbo.Category: (Category_ID, Category_name)
dbo.SubCategory: (SubCategory_ID, Category_ID, SubCategory_name)
dbo.Product: (Product_ID, Category_ID, SubCategory_ID, Product_name)
- 我需要一个循环来显示我所有的类别(来自类别table)
- 我需要第二个循环(在第一个循环内)来显示属于父类别的所有子类别。
- 我需要显示(带记录数)有多少产品有我的每个子类别。
例如,我需要这样的东西:
类别 1
--- 子类别 1 (7)
--- 子类别 2 (11)
类别 2
--- 子类别 5 (88)
--- 子类别 9 (36)
类别 3
--- 子类别 8 (0)
--- 子类别 22 (122)
我不熟悉经典 asp 和 vbscript,到目前为止我唯一能做的就是我的主要类别的第一个循环如下:
<%
dim Connect,RS_test,sql
Set Connect = Server.Createobject("ADODB.Connection")
Connect.Open = MM_sindesi_STRING
sql = "SELECT * FROM dbo.Category"
set RS_test = Connect.Execute(sql)
%>
<%
Do Until RS_test.Eof
%>
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td><%=RS_test("Category_name")%></td>
</tr>
</table>
<%
RS_test.MoveNext
Loop
%>
<%
Connect.Close()
Set RS_test = Nothing
Set Connect = Nothing
%>
上面的代码工作正常,但我唯一得到的是我的类别名称......
我努力在 Whosebug 中找到一些类似的问题,但不幸的是我没有找到任何东西......
您使用嵌套的 Do 循环
<%
set category = server.createobject("adodb.recordset")
SQL="SELECT * FROM dbo.Category"
category.open SQL,Connect,1,3
%>
<%i=0%>
<% Do while not category.eof %>
<%i=i+1%>
<%=i> Category Record
<table width="100%" border="1" cellspacing="1" cellpadding="1">
<tr>
<td><%=category("Category_name")%></td>
</tr>
<%
cat_id=category(Category_ID)
set sub_category = server.createobject("adodb.recordset")
SQL="SELECT * FROM dbo.SubCategory where Category_Id="&cat_id&""
sub_category.open SQL,Connect,1,3%>
<%j=0%>
<% Do while not sub_category.eof %>
<%j=j+1%>
<%=j%> Record Sub Category
<tr>
<td><%=category("SubCategory_name")%></td>
</tr>
<%
sub_category.MoveNext
Loop
%>
</table>
<%
category.MoveNext
Loop
%>