(Es gibt zahlreiche Ansätze für verschachtelte Schleifen / Abfragen. Eine Idee zur Strukturänderung wäre, eine separate Tabelle zu haben, die alle untergeordneten Elemente jeder Kategorie auflistet -Kinder und Unter-Unter-Kinder... wie 1 hat Kind 2, 2 hat Kind 3, 1 hat Kind 3, 3 hat Kind 5, 1 hat Kind 5.. etc..) ABER, für die aktuelle Situation..
Eine Schleifenstruktur könnte sein:
Ergebnismenge starten. ||Suche nach allen Kategorie-IDs, bei denen Elternteil =0 ist. || Füge sie jeweils dem Array hinzu (X). ||Ergebnisliste schließen.
Für jede ID im Array (X):
- Erstellen Sie eine neue Zählvariable (z).
-
Erstellen Sie ein neues untergeordnetes ID-Array (Y).
-
Ergebnismenge starten. ||Anzahl der Abfragen * für alle Elemente mit Kategorie =aktuelle ID x ||Zu Zählvariable hinzufügen (z) ||Ergebnisliste schließen.
-
Ergebnissatz starten. ||Suche nach allen Kategorie-IDs, wobei Elternteil =aktuelle ID x ||Füge alles zum untergeordneten ID-Array hinzu (Y). ||Ergebnisliste schließen.
-
während die Länge des untergeordneten Arrays (Y)> 0 ist
-
Kategorie-ID y =erstes Element im Array (Y)
-
Ergebnismenge starten. ||Suche nach allen Kategorie-IDs, wobei Elternteil =aktuelle ID y ist. ||Füge alles zum untergeordneten ID-Array hinzu (Y). ||Ergebnisliste schließen.
-
Ergebnissatz starten. ||Anzahl der Abfragen * für alle Elemente mit Kategorie =aktuelle ID j ||Zu Zählvariable hinzufügen (z) ||Ergebnisliste schließen.
-
Entfernen Sie das erste Element aus dem Array (Y)
-
-
While-Schleife fortsetzen
-
An diesem Punkt haben Sie die endgültige Elementanzahl (z) für die Kategorie-ID x ... tun Sie etwas damit und fahren Sie dann mit der for-Schleife fort
End for-Schleife