[ Milan M. Radovic @ 11.12.2009. 11:56 ] @
Evo, ja sam imao bio probleme da napravim ovo i kad sam napravio, ajd reko da okacim, mozda nekom zatreba. Uz vrlo malo prerade oko smarty dela, uz neki while, moze da se uradi na beskonacno mnogo nivoa... Ako budem imao potrebe i za tim, definitivno cu uraditi ;) Tabela ima 3 polja - id, namei parent_id (id roditelja) Upit ka bazi Code: SELECT *, (SELECT COUNT(*) FROM categories AS c2 WHERE c2.parent_id=c1.id) AS childs FROM categories AS c1 ORDER BY name ASC; Tabela koja se dobija Code: +----+-------------------+-----------+--------+ | id | name | parent_id | childs | +----+-------------------+-----------+--------+ | 23 | .Co.Yu | 17 | 0 | | 22 | .COM | 17 | 0 | | 24 | .in.RS | 17 | 0 | | 25 | .org.rs | 17 | 0 | | 21 | .RS | 17 | 0 | | 7 | 5.1 | 5 | 0 | | 8 | 7.1 | 5 | 0 | | 3 | Automobili | 1 | 3 | | 1 | Automoto | NULL | 2 | | 19 | CPU | 16 | 0 | | 17 | Domeni | 14 | 5 | | 5 | DVD Plejeri | 2 | 3 | | 2 | Elektronika | NULL | 2 | | 12 | Ford | 3 | 0 | | 20 | Graficka | 16 | 0 | | 18 | HDD | 16 | 0 | | 16 | Komponente | 14 | 3 | | 15 | Konfiguracije | 14 | 0 | | 4 | Moto-cikli | 1 | 1 | | 6 | MP3 Plejeri | 2 | 0 | | 13 | Preko 1300ccm | 3 | 0 | | 14 | Racunari i oprema | NULL | 3 | | 10 | Yamahe | 4 | 0 | | 11 | Yugo | 3 | 0 | +----+-------------------+-----------+--------+ Ovo 'childs' moze da koristi da se proveri u smarty da li je TRUE (vece od 0) tj. da li ima 'dece' pa ukoliko ima, da se ne dozvoli korisniku ... sta god. Smarty Part : Code: {section name=lvl_1 loop=$categories} {if !$categories[lvl_1].parent_id} {$categories[lvl_1].name}<option disabled="disabled" class='parentcategory'>{$categories[lvl_1].name}</option><br /> {section name=lvl_2 loop=$categories} {if $categories[lvl_2].parent_id==$categories[lvl_1].id} --{$categories[lvl_2].name}<br /> {section name=lvl_3 loop=$categories} {if $categories[lvl_3].parent_id==$categories[lvl_2].id} ----{$categories[lvl_3].name}<br /> {/if} {/section} {/if} {/section} {/if} {/section} Output Code: AutomotoAutomoto --Automobili ----Ford ----Preko 1300ccm ----Yugo --Moto-cikli ----Yamahe ElektronikaElektronika --DVD Plejeri ----5.1 ----7.1 --MP3 Plejeri Racunari i opremaRacunari i oprema --Domeni ----.Co.Yu ----.COM ----.in.RS ----.org.rs ----.RS --Komponente ----CPU ----Graficka ----HDD --Konfiguracije |