[ Cuchulainn @ 29.05.2006. 17:11 ] @
Imam problem: zeleo bih da napravim PHP meni sa beskonacno nivoa koji izvlaci iz baze sve kategorije i potkategorije tj azuriraju se preko admin panela...Svaka kategorija ili podkategorija moze ali ne mora da ima link ka strani!!!
Meni bi trebalo da izgelda ovako:

Kategorija 1
Podkategorija 1
Podkategorija 2
Podkategorija 2.1
Podkategorija 2.2
Podkategorija 2.2.1
.
.
I tako dalje se grana sve podkategorije
.
.
.
Podkategorija n

Kategorija 2
Podkategorija 1
Podkategorija 2
.
.
.
Podkategorija n
.
.
.
Kategorija n
.
.
.



Znaci N nivoa ima meni....

Zahvaljujem se unapred!
[ w3bl0rd @ 29.05.2006. 18:01 ] @
i što tu ne razumiješ?
u bazi imaš id,ime_menija , od

id i od je brojevna vrijednost a ime_menija string
i sad ako prenašaš GET metodom pošalješ ovako ?id=5&od=4
pa onda samo izvlačiš
SELECT * FROM tb WHERE od=$_GET["id"]

jednostavno povezano...

od sadrži vrijednost id kategorije sa višim prioritetom npr

kategorija1 1 0
podkategorija1 2 1
podkategorija2 3 1
podkategorijapodkategorija1 4 2
podkategorijapodkategorija2 5 3


[ NikolaVeber @ 30.05.2006. 10:55 ] @
I obelezis prvi nivo sa root=1 ili slicno, da znas odakle da pocnes sa rekurzivnim iscitavanjem.
[ Cuchulainn @ 30.05.2006. 11:51 ] @
.
Citat:
w3bl0rd: i što tu ne razumiješ?
u bazi imaš id,ime_menija , od

id i od je brojevna vrijednost a ime_menija string
i sad ako prenašaš GET metodom pošalješ ovako ?id=5&od=4
pa onda samo izvlačiš
SELECT * FROM tb WHERE od=$_GET["id"]

jednostavno povezano...

od sadrži vrijednost id kategorije sa višim prioritetom npr

kategorija1 1 0
podkategorija1 2 1
podkategorija2 3 1
podkategorijapodkategorija1 4 2
podkategorijapodkategorija2 5 3



Izgleda da neko nekoga nije razumeo....

Meni je potrebno da izlistam celo stablo menija i da ono stalno bude prikazano na stranama!

Kao sto sam napisao u prethodonom postu drvo bi trebalo da izgleda ovako:

Kategorija 1
Podkategorija 1
Podkategorija 2
Podkategorija 2.1
Podkategorija 2.2
Podkategorija 2.2.1
.
.
I tako dalje se grana sve podkategorije
.
.
.
Podkategorija n

Kategorija 2
Podkategorija 2.1
Podkategorija 2.2
.
.
.
Podkategorija n
.
.
.
Kategorija n
.
.
.



Znaci N nivoa ima meni....

Ovo sve se nalazi u dve tabele: kategorija[idkategorije, naziv, roditeljska_kategorija] i tabela proizvodi[idproiz, naziv, idkategorije].
Ja mogu da izlistam sve roditeljske kategorije do top kategorija i da ih predstavim linkovima a aktuelnu kategoriju samo natpisom i ispod prikazem meni da se izlistaju podkategorije izabrane kategorije.
Npr: ako je izabrana "Podkategorija 2.2" prikazace se na stranici:
------------------------------------------------
Kategorija 1 / Podkategorija 2 / Podkategorija 2.2

> Podkategorija 2.2.1
> Podkategorija 2.2.2
> Podkategorija 2.2.3
------------------------------------------------
A to je tip menija koji meni ne odgovara u ovom slucaju...

[ w3bl0rd @ 30.05.2006. 13:27 ] @
imaš onda zadnju podkategoriju a ona ima vrijednost 'od' od id njoj glavne kategorija a opet ta glavna ima od od njene...
imaš samo

//prije petlje
select * from tb where id=$_GET["id"]
//pa onda u petlji... tu naravno ide još koda...
while($id!=1)
{
select *from tb where id=od
//ispis
//postavljanje vrijednost $id na vrijednost $od
}


i opet ne vidim di je problem...
[ Cuchulainn @ 30.05.2006. 13:39 ] @
Citat:
w3bl0rd: imaš onda zadnju podkategoriju a ona ima vrijednost 'od' od id njoj glavne kategorija a opet ta glavna ima od od njene...
imaš samo

//prije petlje
select * from tb where id=$_GET["id"]
//pa onda u petlji... tu naravno ide još koda...
while($id!=1)
{
select *from tb where id=od
//ispis
//postavljanje vrijednost $id na vrijednost $od
}


i opet ne vidim di je problem...



Definitivno ne razumes problematiku.... potrebno je prikazati sve N kategorije i N potkategorije i N potpotkategorije... ODJENDOM a ne jednu kategoriju!!!
Hvala na trudu...:)))
[ broker @ 30.05.2006. 15:02 ] @
tabela:

menu_id
menu_parent_id
caption


I onda napravis jednu funkciju create_menu ($p_top_menu) koja za zadati id menija pronadje sve podopcije pa ih prikazuje osim ako podopcija ima podopcije kada funkcija rekurzivna poziva sama sebe. Opcije koje su najvise u drvetu nemaju parent_id.

I tako kreiras ceo meni...

Inace, zamisao ti i nije bas dobra za sajt, jer ume zesce da optereti server.
[ Gojko Vujovic @ 30.05.2006. 17:35 ] @
Optimizacija toga bi bila da uradiš select * u associative array u php-u pa da onda to parsiraš kako god ti treba na nivou aplikacije. Mnogo efikasnije nego ugnježdeni upiti koji su predloženi u ovoj temi.
[ Keyframe @ 31.05.2006. 03:31 ] @
slazem sa sa gojkom - medjutim u krajnjoj liniji, takvu vrst upita mysql bi dobro trebao kesirati, zar ne? hocu reci, da se u praksi mozda niti ne bi osjetilo bas previse.. mozda :)
[ cartmanlee @ 31.05.2006. 08:02 ] @
Definitivno se slažem da je bolje napraviti jedan 'select *', pa onda kopati po rezultatima. A što se tiče keširanja, mislim da se njime ništa previše ne dobiva, osim ako sad stvarno nije riječ o stotinama tisuća redaka, ali to obično nije slučaj s menijima, bar dosad u praksi nisam imao takav slučaj. Ali kad uhvatiš sve rezultate, onda u prikazu također moraš pripaziti koji ti je zadnji child element, tako da možeš napraviti ispravan prikaz.
[ Unknownuser007 @ 10.01.2013. 15:56 ] @
Da ozivim malo temu, posto ja imam slican problem, naime treba mi takodje ispis kategorija iz baze u meniju. Otprilike ima 4, 5 nivoa, ali bih hteo npr kada kliknes na link od neke kategorije da izbaci sve predmete koji se nalaze u toj podkategoriji, bila ona na 3 nivou ili na poslednjem, nadam se da razumete...