Chcę w swoim serwisie internetowym system kategorii 3 rzędu (tzn. wybieramy najpierw 1, potem 2, a na końcu 3). Na początku chcę przypisać do 3 zmiennych listę kategorii 1, 2 i 3 rzędu w postaci tablicy (aby później ewentualnie wrzucić to w cache), a następnie przy pomocy pętli sprawdzać, czy się zawierają.
Struktura tabeli z kategoriami
id | parent | parent2 | nazwa | seonazwa | ile
//Kategorie główne $q1=mysql_query('SELECT id, nazwa FROM kategorie WHERE parent=0 AND parent2=0 ORDER BY seonazwa ASC'); { { $kategorie1[]=$r1; } } //////// //Podkategorie pierwsze $q1=mysql_query('SELECT id, nazwa, parent FROM kategorie WHERE parent<>0 AND parent2=0 ORDER BY seonazwa ASC'); { { $kategorie2[]=$r2; } } /// //Podkategorie trzecie $q1=mysql_query('SELECT id, nazwa, parent2 FROM kategorie WHERE parent<>0 AND parent2<>0 ORDER BY seonazwa ASC'); { { $kategorie3[]=$r3; } } /// for($x=0; $x<count($kategorie1); $x++) { for($y=0; $y<count($kategorie2); $y++) { if($kategorie1[$x]['id']==$kategorie2[$y]['parent']) { for($z=0; $z<count($kategorie3);$z++) { if($kategorie2[$y]['id']==$kategorie3[$z]['parent2']) { } } } } } ///
Wszystko niby działa i generuje wynik mniej więcej w takiej postaci:
Kategoria_glowna_1
-> Podkategoria_pierwsza1
---> Podkategoria_druga1
---> Podkategoria_druga2
-> Podkategoria_pierwsza2
-> Podkategoria_pierwsza3
Kategoria_glowna_2
Kategoria_glowna_3
Jednak zastanawia mnie, czy nie za bardzo przekombinowałem z pętlami i czy takie rozwiązanie wydaje się optymalne.