循环内部循环,最后一个循环的每一行都有记录计数

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)
  1. 我需要一个循环来显示我所有的类别(来自类别table)
  2. 我需要第二个循环(在第一个循环内)来显示属于父类别的所有子类别。
  3. 我需要显示(带记录数)有多少产品有我的每个子类别。

例如,我需要这样的东西:

类别 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
    %>