Vypisovanie poloziek podla vybranej kategorie vratane podkategorii – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vypisovanie poloziek podla vybranej kategorie vratane podkategorii – MySQL – Fórum – Programujte.comVypisovanie poloziek podla vybranej kategorie vratane podkategorii – MySQL – Fórum – Programujte.com

 

marioff0
Expert
10. 3. 2010   #1
-
0
-

Vypisovanie poloziek podla vybranej kategorie vratane podkategorii

mam 1.tab s kategoriami:
id podkat nazov
1 0 Pocitace
2 1 Komponenty
3 2 Procesory
4 2 Pamate
5 2 HDD

a 2.tab s polozkami
id id_kat nazov
1 3 Pentium 4
2 4 DDR2 2GB
3 5 WD 250GB

cize, da sa povedat klasika... Ked vojdem do jednotlivych kategorii 3,4,5 zobrazi sa mi v kazdej po jednej polozke... Ako urobit to ze ked vojdem do kategorie Komponenty (2) mi zobrazi vsetky polozky ktore su vnorene v podkategoriach v nej... ale aj v dalsich podkategoriach v podkat.... atd..... bez limitacie urovne... (resp. 10 urovni je max)


Mam nato pomerne dost malo casu, preto chcem vyuzit Vas aby ste ma nakopli hned spravnym smerom, aby som to nemusel viacrazy prerabat, akonahle zistit ze sa to da aj lepsie (ako mam vo zvyku)....

zatial moc diki

Majo

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Mafiosoweb0
Návštěvník
10. 3. 2010   #2
-
0
-

To marioff : Přijde mi to jako databázový dotaz, co s php nemá moc společného.
Například:

SELECT nazev FROM polozky WHERE id_kat in (SELECT id FROM kategorie WHERE podkat=2)

Nahlásit jako SPAM
IP: 212.20.118.–
Jak jsem řekl, tak jest.
Prog.0
Věrný člen
10. 3. 2010   #3
-
0
-

To Mafiosoweb :

tým selectom vyberieš iba položky zo všetkých podkategórií kategórie 2 ale neberieš položky samotnej kategórie 2 a ani položky v hlbších podkategóriách.
ten prvý problém by sa dal hádam odstrániť pridaním

...WHERE id_kat=2 or id_kat=(SELECT ...
Ale stále to nerieši tie hlbšie podkategórie...


To marioff :

Ak to potrebuješ narýchlo zlepiť, tak rekurzívne získaj ID všetkých kategórii, ktorých sa to týka, a potom urob:
SELECT id, ... FROM polozky WHERE id_kat IN (<ciarkami oddelený zoznam ideciek kategorii>)

Ak by si mal ten strom kategórii navrhnutý s left-right hotnotami (neviem ako sa to presne volá, ...), tak problém vyriešiš jediným selectom.

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
marioff0
Expert
10. 3. 2010   #4
-
0
-

To Prog. : jj.... asi rychlejsie bude prerobit kategorie tak aby sa dalo traverzovat okolo stromu tych kategorii... pretoze ziskat vsetky podkat je krajne nevyhodne... a navyse prasacina :) ....

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Prog.0
Věrný člen
10. 3. 2010   #5
-
0
-

To marioff :
No pre mňa by rýchlejšie bolo capnúť tam jednu rekúrzívnu funkciu a problém je vyriešený. Ale predpokladám, že si to myslel tak, že rýchlejšie bude selectovanie. Editácia stromu sa však výrazne skomplikuje, hlavne, ak budeš chcieť tento strom manažovať z viacerných aplikácí (editor, importér, ...) - vždy musíš riešiť L/R...

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Mafiosoweb0
Návštěvník
10. 3. 2010   #6
-
0
-

To Prog. : diky za opravy, ja to nadhodil jen jako rychlé nakopnutí co autor žádal :)

Nahlásit jako SPAM
IP: 212.20.118.–
Jak jsem řekl, tak jest.
marioff0
Expert
11. 3. 2010   #7
-
0
-

To Prog. : To Mafiosoweb :

takze dnes v noci som to urobil predsa pomocou rekurzie som nasiel ku kazdej kategorii odpovedajuce vsetky podkategorie a tie ULOZIL do noveho stlpca... cize pri vybere kategorie v ktorej sa aktualne clovek nachadza sa vybere dany stlpec a rovno sa cely hodi do IN ($stlpec)....

nove kategorie sa robia zriedka kedy a uz ked sa vytvori nova, hned nato sa spusti znova rekurzivna funkcia ktora znova prepocita vsetky podkategorie pre kazdu kategoriu...

aspon sa mi to zda vykonovo lepsie raz prejst vsetko rekurziou a vysledky ulozit :)

Nahlásit jako SPAM
IP: 195.78.44.–
Škoda, že život sa nedá "sejvovať", tak že by som po zlom životnom rozhodnutí mohol začať odznova :([br] Lenivosť je matka pokroku.[br][br] http://cut.sk/ - odstrihni si dlhý link
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý