aflare id-uri subcategorii


menace 4ever


am tabela categorii cu urmatoarele campuri

id | nume_catg | id_parinte

as dori o functie care sa primeasca ca parametru id-ul unei categorii si sa imi returneze un array cu acel id al categoriei primit ca parametru + toate id-urile copiilor pana la ultimul (daca e cazul).

EXEMPLU:

CODSURSA
Categorie 1 (id = 1, id_parinte = 0)
|_Categorie 1.1 (id = 2, id_parinte = 1)
|_Categorie 1.2 (id = 3, id_parinte = 1)
|  |_Categorie 1.2.1 (id = 4, id_parinte = 3)
|  |_Categorie 1.2.2 (id = 5, id_parinte = 3)
|     |_Categorie 1.2.2.1 (id = 6, id_parinte = 5)
|_Categorie 1.3 (id = 7, id_parinte = 1)
Categorie 2 (id = 8, id_parinte = 0)
Categorie 3 (id = 9, id_parinte = 0)


daca dau ca parametru acestei functiei valoarea 1, sa imi returneze un array cu elementele 1,2,3,4,5,6,7 iar daca dau ca parametru valoarea 8, sa imi returneze un array doar cu aceasta valoare!

ms anticipat!
OriginalCopy
Am pe blog un astfel de articol, usor de inteles daca stii deja sa lucrezi cu arbori (chiar si doar binari).

Lucreaza cu arbori denormalizati, nu recursivi cum l-ai construit tu pe-al tau (ceea ce e exponential mai avantajos dvp al performantei).
 
menace 4ever
merci pt rasp, dar nu am primit niciun ajutor concret!
lasa-mi macar un link la articolul de pe blog-ul tau daca crezi ca e ce am nevoie, desi nu pot sa spun ca stiu destul de bine sa lucrez cu arbori...

mai astept cu interes raspunsuri..
OriginalCopy
O sa-mi mut blogul, deci nu are rost sa mai las si aici link. Se gaseste in profilul meu daca chiar vrei.

Oricum articolul asta descrie ceva similar dpv conceptual si mult mai detaliat.
menace 4ever
CITAT (OriginalCopy @ 16th October 2009, 12:10) *
Lucreaza cu arbori denormalizati, nu recursivi cum l-ai construit tu pe-al tau (ceea ce e exponential mai avantajos dvp al performantei).


unde as putea sa gasesc resurse pt a invata lucrul cu acest tip ?
OriginalCopy
Pai tocmai ti-am dat link mai sus... doar ... citeste.
udragos
CITAT (menace 4ever @ 16th October 2009, 11:52) *
am tabela categorii cu urmatoarele campuri

id | nume_catg | id_parinte

as dori o functie care sa primeasca ca parametru id-ul unei categorii si sa imi returneze un array cu acel id al categoriei primit ca parametru + toate id-urile copiilor pana la ultimul (daca e cazul).

EXEMPLU:

CODSURSA
Categorie 1 (id = 1, id_parinte = 0)
|_Categorie 1.1 (id = 2, id_parinte = 1)
|_Categorie 1.2 (id = 3, id_parinte = 1)
|  |_Categorie 1.2.1 (id = 4, id_parinte = 3)
|  |_Categorie 1.2.2 (id = 5, id_parinte = 3)
|     |_Categorie 1.2.2.1 (id = 6, id_parinte = 5)
|_Categorie 1.3 (id = 7, id_parinte = 1)
Categorie 2 (id = 8, id_parinte = 0)
Categorie 3 (id = 9, id_parinte = 0)


daca dau ca parametru acestei functiei valoarea 1, sa imi returneze un array cu elementele 1,2,3,4,5,6,7 iar daca dau ca parametru valoarea 8, sa imi returneze un array doar cu aceasta valoare!

ms anticipat!


O functie recursiva rezolva problema ... da, o sa folosesti mai multe queriuri pe baza de date, nu numai unul! (sau o procedura stocata in DB)

 
Aceasta este o versiune simplificatã a paginii originale. Pentru a vizita versiunea originala click aici.