• 10 odgovora
  • 5.749 pregleda
PHP & MySQL meni sa beskonacno nivoa 29.05.2006. u 17:11 · pre 248 meseci #1
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!
Re: PHP & MySQL meni sa beskonacno nivoa 29.05.2006. u 18:01 · pre 248 meseci #2
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


Potpis
there's no place like 127.0.0.1
Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 10:55 · pre 248 meseci #3
I obelezis prvi nivo sa root=1 ili slicno, da znas odakle da pocnes sa rekurzivnim iscitavanjem.
Potpis
Pop Servis "Paradise Tours"
Java User Group Karlsruhe
IT Dan - Srbija

Officer, I saw the driver who hit me - his name was Johnny Walker.
Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 11:51 · pre 248 meseci #4
.
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...

Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 13:27 · pre 248 meseci #5
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...
Potpis
there's no place like 127.0.0.1
Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 13:39 · pre 248 meseci #6
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...:)))
Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 15:02 · pre 248 meseci #7
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.
Re: PHP & MySQL meni sa beskonacno nivoa 30.05.2006. u 17:35 · pre 248 meseci #8
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.
Re: PHP & MySQL meni sa beskonacno nivoa 31.05.2006. u 03:31 · pre 248 meseci #9
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 :)
Re: PHP & MySQL meni sa beskonacno nivoa 31.05.2006. u 08:02 · pre 248 meseci #10
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.
Potpis
http://www.zgflex.org
Re: PHP & MySQL meni sa beskonacno nivoa 10.01.2013. u 15:56 · pre 167 meseci #11
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...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme