![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio zastanawialem sie nad optymalnem rozwiazaniem dla wyswietlania drzewka. Mam w bazie tabele z grupami ktora poziada kolumne parent_id. Dzieki temu moge dowolnie zagniezdzac gurpy jedne w drugich (najwyzej stoja te z parent_id = 0) .
Teraz pobieram sobie to wszystko z bazy i zastanawiam sie w jaki sposob zformatowac tablice z wynikami aby smarty bez problemu (czytaj duzej ilosci kodu) mi ja wyswielil. Do tej pory mialem cos takiego Kod grupa nadrzedna |
| -dzieci | | -dziecko 1 | | | | - dzieci... | -dziecko 2 | | - dzieci... No ale taka tablica jest dosyc niewygoda w uzyciu. Chcialem ja miec bardziej plaska. Myslalem nad tym zeby wstawiac ilosc dzieci i tworzyc cos w rodzaju stosu. Nadzedna -> 4 dzieci -> umiesc na stosie 4 -> dziecko -> ilosc swoich dzieci 2 -> umiesc na stosie 2 ->wyswietlone dwoje dzieci -> zdejmi ze stosu 2 -> dekrementuj zmienna najwyzej na stosie i lec dalej. Ale jak pewnie zauwazlyliscie to jest niezle kombinactwo (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) , a jak znam zycie to istnieje pewnie jakis banalny sposob. No i wlasnie chcialbym spytc czy ktos takowego nie zna (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 790 Pomógł: 7 Dołączył: 6.02.2003 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
a to moj sposob
[php:1:6e6206eb3c]<?php function getsub($sid) { global $db, $content; $sql = "SELECT `id`,`name`,`type` FROM `categories` WHERE `sub`='{$sid}'"; $result = $db->Execute($sql); while(!$result->EOF) { $id = $result->fields['id']; $name = $result->fields['name']; $type = $result->fields['type']; $result->MoveNext(); } return $content; } ?>[/php:1:6e6206eb3c] wybaczcie, ze kod na AdoDB, ale.... a ten parametr $sid to id starszej kategorii, funkcja wyciaga wszystkie podkategorie i ich podkategorie itd uwaga, bo czasami moze sie dlugo wykonywac ;-) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 04:23 |