(Er zijn talloze benaderingen voor geneste lussen/query's.. een idee van structuurverandering zou zijn om een aparte tabel te hebben met alle kinderen van elke categorie... en ervoor te zorgen dat deze niet alleen de directe kinderen heeft, maar ook de sub -kinderen en sub-sub-kinderen... zoals 1 heeft kind 2, 2 heeft kind 3, 1 heeft kind 3, 3 heeft kind 5, 1 heeft kind 5.. etc..) MAAR, voor de huidige situatie..
Een lusstructuur zou kunnen zijn:
Resultatenset starten. ||Query voor alle categorie-ID's waarbij parent =0. || Voeg elk toe aan array (X). ||Sluit resultatenset.
Voor elke id in array (X):
- Stel een nieuwe telvariabele (z) in.
-
Stel een nieuwe onderliggende ID-array (Y) in.
-
Resultatenset starten. ||Query count * voor alle items met categorie =huidige id x ||Toevoegen aan telvariabele (z) ||Resultatenset sluiten.
-
Resultatenset starten. ||Query voor alle categorie-id's waarbij parent =huidige id x ||Alles toevoegen aan onderliggende id-array (Y). ||Sluit resultatenset.
-
while child-array (Y) lengte> 0
-
categorie-ID y =eerste item in array (Y)
-
Resultatenset starten. ||Query voor alle categorie-ID's waarbij parent =huidig ID y. ||Voeg alles toe aan de onderliggende ID-array (Y). ||Sluit resultatenset.
-
Resultatenset starten. ||Query count * voor alle items met categorie =huidig id y ||Toevoegen aan telvariabele (z) ||Resultatenset sluiten.
-
verwijder eerste item uit array (Y)
-
-
doorgaan while-lus
-
Op dit punt heb je het laatste aantal items (z) voor categorie id x... doe er iets mee en ga dan verder met de for-lus
Einde voor lus