mam mały problem otóż mam jedną tabele:
id parent name system_link main_cat counter 1 0 Bezpieczeństwo bezpieczenstwo 8 2159 2 1 Aktualizacje i poprawki zabezpieczeń bezpieczenstwo-aktualizacje-i-poprawki-zabezpiecze... 0 93 3 1 Pakiety zabezpieczające bezpieczenstwo-pakiety-zabezpieczajace 0 50 4 1 Anty: spyware, spam, dialer, trojan bezpieczenstwo-anty-spyware-spam-dialer-trojan 0 71
...
Chciałbym w jednym zapytaniu wywindować sobie tabele w postaci:
by wyświetlić ją w następujący sposób najpierw kategorie główne poźniej podkategorie należące do danej kategorii głównej id = parent
robie to za pomocą 2 zapytań:
wszystkie kategorie główne ->
WHERE main_cat = '8' ORDER BY name ASC
podkategorie należące do kategorii głównej ->
WHERE parent IN(SELECT id FROM cats WHERE main_cat = '8') GROUP BY parent, id, name, system_link ORDER BY name ASC
później całość wyświetlania polega na sprawdzanie czy id = parent z tych 2 tabel
{foreach $categories as $category} <li> <h3><a href="{$smarty.const.BASE_HREF}kategoria-{$category.id}-{$category.system_link}.html">{$category.name}</a></h3> </li> {foreach $sub_categories as $subcategory} {if $subcategory.parent == $category.id} <li><a href="{$smarty.const.BASE_HREF}kategoria-{$subcategory.id}-{$subcategory.system_link}.html">{$subcategory.name}</a></li> {/if} {/foreach} {/if} {/foreach}
Nie jest to zbyt optymalne dlatego czego na porady ? uwagi ?