(Existuje mnoho přístupů k vnořeným cyklům/dotazům. Myšlenka na změnu struktury by byla mít samostatnou tabulku, která by obsahovala seznam všech potomků každé kategorie.. a ujistěte se, že má nejen bezprostřední potomky, ale také sub -děti a pod-děti... jako 1 má dítě 2, 2 má dítě 3, 1 má dítě 3, 3 má dítě 5, 1 má dítě 5.. atd..) ALE za současné situace..
Struktura jedné smyčky může být:
Spustit sadu výsledků. ||Dotaz na všechna ID kategorií, kde rodič =0. || Přidejte každý do pole (X). ||Zavřít sadu výsledků.
Pro každé ID v poli (X):
- Vytvořte novou proměnnou počítání (z).
-
Vytvořte nové podřízené pole ID (Y).
-
Spustit sadu výsledků. ||Počet dotazů * pro všechny položky s kategorií =aktuální id x ||Přidat do proměnné počítání (z) ||Zavřít sadu výsledků.
-
Spustit sadu výsledků. ||Dotaz na všechna id kategorií, kde rodič =aktuální id x ||Přidat vše do podřízeného pole id (Y). ||Zavřít sadu výsledků.
-
zatímco délka podřízeného pole (Y)> 0
-
id kategorie y =první položka v poli (Y)
-
Spustit sadu výsledků. ||Dotaz na všechna ID kategorií, kde rodič =aktuální id y. ||Přidat vše do podřízeného pole id (Y). ||Zavřít sadu výsledků.
-
Spustit sadu výsledků. ||Počet dotazů * pro všechny položky s kategorií =aktuální id y ||Přidat do proměnné počítání (z) ||Zavřít sadu výsledků.
-
odstranit první položku z pole (Y)
-
-
pokračovat ve smyčce
-
V tomto okamžiku máte konečný počet položek (z) pro kategorii id x... něco s tím udělejte a poté pokračujte smyčkou for
Konec smyčky