Zadejte hledaný výraz...

Seřazení vnořených položek z DB

johny881
verified
rating uzivatele
11. 1. 2010 12:39:58
Ahoj,
potřeboval bych prosím helpnout, mám tabulku v DB, kde je id položky, název položky a rodič položky, hlavní položky mají rodič=0, a ostatní mají id rodiče.
A můj problém je v tom, že dokážu vypsat seřazeně jen určitej počet popoložek.
Menší příklad:
DB
1 Hlavni 0
2 Hlavni1 1
3 Hlavni2 1
4 Hlavni11 2
5 Hlavni12 2
Takže bych chtěl aby to vypsalo:
Hlavni
-Hlavni1
--Hlavni11
--Hlavni12
-Hlavni2
To dokážu, ale na 3 vnořený while
alc co kdybych pokračoval dál do hloubky, to bych vždy musel přidělávat další vnoření, nešlo by to nějak udělat najednou, že by bylo jedno, jak hluboko jsem??
Předem děkuju za odpovědi
11. 1. 2010 12:39:58
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436680
carlos
verified
rating uzivatele
(19 hodnocení)
11. 1. 2010 12:57:09
Napsal johny881;432508
Ahoj,
alc co kdybych pokračoval dál do hloubky, to bych vždy musel přidělávat další vnoření, nešlo by to nějak udělat najednou, že by bylo jedno, jak hluboko jsem??
Šlo, prostuduj si tzv. rekurzivní funkce. Ta musí umět vypsat danou úroveň a případně se zanořit hlouběji.
Také je třeba načíst si do pole hodnoty z DB ještě před tím (abys zabránil zbytečným dotazům na DB).
11. 1. 2010 12:57:09
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436679
duben
verified
rating uzivatele
(49 hodnocení)
11. 1. 2010 14:33:27
Pokud nepoužiješ nějakou metodu zmíněnou v odkazech co psal syntaxsugar, tak místo rekurzivních funkcí nad DB, která bude pro často volaný PHP script vražedná (spousta dotazů vracejících 1-5 záznamů dokáže slušně přetížit DB server) to jde obejít přes PHP. Pokud nemáš těch dat v DB hodně a potřebuješ to třeba pro menu apod, tak se dá tabulka načíst do pole a pole seřadit v paměti, klidně rekurzivníma funkcema, ideálně za použití sofistikovaného řazení v kombinaci s šikovným ORDER při načtení celého seznamu. Pokud ale budeš mít tisíce záznamů už to může být výkonově problém (ale v té době už by dávno byl problém s rekurzivním voláním DB).
Hodně brutální varianta mě možná napadá při využití datového typu XML, ale nevím z hlavy jestli MySQL takový datový typ podporuje a jak s ním umí pracovat.
11. 1. 2010 14:33:27
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436677
johny881
verified
rating uzivatele
12. 1. 2010 23:15:37
Áááááááááááááááá, neumím programovat, vůbec mi to nejde :nono:
Mohl by to někdo trochu víc přiblížit prosím, jsem z toho nešťastný
12. 1. 2010 23:15:37
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436676
duben
verified
rating uzivatele
(49 hodnocení)
12. 1. 2010 23:59:51
To jsi si na začátek nevybral nejlepší sousto. Co vlastně potřebuješ udělat?
12. 1. 2010 23:59:51
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436675
johny881
verified
rating uzivatele
13. 1. 2010 00:09:26
No jde o menu, chci to mít hezky všechno v DB a nechci být omezen hloubkou menu, to je vše, cca desítky položek
13. 1. 2010 00:09:26
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436674
duben
verified
rating uzivatele
(49 hodnocení)
13. 1. 2010 10:37:39
Tak na to kasli, nedelej menu pres DB, ale udelej to jako include souboru, ktery vlozis do ostatnich stranek. Nebudes zatezovat DB pri kazdem nacteni stranky, bude to jednoduche na udelani a snadno zmenitelne.
13. 1. 2010 10:37:39
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436673
johny881
verified
rating uzivatele
13. 1. 2010 13:05:17
To je taky způsob, ale to bych musel v admin rozhranní to předělat, aby se to ukládalo nějak do souboru, kterej se bude includovat.
13. 1. 2010 13:05:17
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436672
duben
verified
rating uzivatele
(49 hodnocení)
13. 1. 2010 14:59:32
Nechápu, pokud cituji co jsi říkal ...
Áááááááááááááááá, neumím programovat, vůbec mi to nejde
Mohl by to někdo trochu víc přiblížit prosím, jsem z toho nešťastný
tak proč děláš nějaké extra propracované administrační rozhraní? Proč prostě nepřidáš počet kapitol a pokud je nové potřeba tak jí prostě nepřidáš? Pokud se ti to bude často měnit a opravdu to potřebuješ měnit v adminsitraci, proč tam prostě nevypíšeš obsah inlucde aby se to v něm měnilo natvrdo?
13. 1. 2010 14:59:32
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436671
johny881
verified
rating uzivatele
13. 1. 2010 15:04:05
Protože kámoš nemá ani představu o co Go. Tak sem to chtěl co nejvíc zjednodušit, programuju už několik let, ale tohle prostě nemůžu rozlousknout, smůla.
13. 1. 2010 15:04:05
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436670
johny881
verified
rating uzivatele
17. 1. 2010 22:14:41
Díky moc za rady, dokázal jsem to
17. 1. 2010 22:14:41
https://webtrh.cz/diskuse/serazeni-vnorenych-polozek-z-db#reply436669
Pro odpověď se přihlašte.
Přihlásit