(Det finns många tillvägagångssätt för kapslade slingor/frågor. En idé om strukturändring skulle vara att ha en separat tabell som listar alla barn i varje kategori.. och se till att den inte bara har de omedelbara barnen, den har också underordnet -barn och underordnade barn... typ 1 har barn 2, 2 har barn 3, 1 har barn 3, 3 har barn 5, 1 har barn 5.. etc..) MEN, för nuvarande situation..
En loopstruktur kan vara:
Starta resultatuppsättning. ||Fråga för alla kategori-ID där parent =0. || Lägg till varje till array (X). ||Stäng resultatuppsättning.
För varje id i array (X):
- Etablera en ny räknevariabel (z).
-
Etablera en ny barn-id-matris (Y).
-
Starta resultatuppsättning. ||Frågeantal * för alla objekt med kategori =aktuellt id x ||Lägg till i räknevariabel (z) ||Stäng resultatuppsättning.
-
Starta resultatuppsättning. ||Fråga för alla kategori-id där förälder =aktuellt id x ||Lägg till alla till barn-id-matrisen (Y). ||Stäng resultatuppsättning.
-
medan underordnad matris (Y) längd> 0
-
kategori id y =första objekt i array (Y)
-
Starta resultatuppsättning. ||Fråga för alla kategori-ID där förälder =aktuellt ID y. ||Lägg till alla till barn-id-matrisen (Y). ||Stäng resultatuppsättning.
-
Starta resultatuppsättning. ||Frågeantal * för alla objekt med kategori =aktuellt id y ||Lägg till i räknevariabel (z) ||Stäng resultatuppsättning.
-
ta bort första objekt från array (Y)
-
-
fortsätt medan loop
-
Vid det här laget har du det slutliga antalet objekt (z) för kategori id x... gör något med det, fortsätt sedan med for-slingan
Slut för loop