webForumDet fria alternativet

Räkna undersidor i meny?

PHP

7 svar · 806 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Går det att göra en funktion som tar reda på hur många grenar(undersidor) en viss sida/länk har i en databas? (ID:t)
Typ så här:
echo get_childs(Frukt); //2 Alltså två undernivå (Päron/Äpplen/Bananer är den första, Ingrid-Marie/Transparent blache/Åkerö är den andra)
echo get_childs(Grönsaker); //1 Alltså en undernivå (Gurka)

Frukt
    Päron
    Äpplen
        Ingrid-Marie
        Transparent blache
        Åkerö
    Bananer
Grönsaker
    Gurka

I databasen finns bl.a. ett ID och ett Relations-id.

Medlem sedan feb. 20034 441 inlägg
#2

Sök på t.ex. "träd" och du hittar den här:
http://www.webforum.nu/showthread.php?t=167222&highlight=tr�dmeny

Medlem sedan okt. 20041 556 inlägg
#3

Tack men, jag skulle behöva ha hjälp med att "bara" räkna antalet undernivåer, inte iterera ut en hel rekursiv meny.
echo get_childs(Frukt); skall i mitt exempel spotta ur sig: 2

Medlem sedan okt. 20041 556 inlägg
#4

Ursäkta om jag ligger på men är det möjligtvis någon som tror sig veta hur jag skall lösa detta?

Medlem sedan juni 20006 031 inlägg
#5

Om du har menyn i databasen är det väl bara att du ställer en fråga till databasen för att få reda på hur många undermenyer det finns.

SELECT COUNT(*) AS antal FROM tabellen WHERE ref_id = $id
Medlem sedan aug. 20039 340 inlägg
#6

Pedda: Det säger fortfarande inget om hur många nivåer trädet har.

Först av allt rekommenderar jag dessa länkar som diskuterar olika sätt att lagra träd i en databas:
http://www.alberton.info/talks_dpc_2009_wrapup.html
http://www.slideshare.net/quipo/trees-in-the-database-advanced-data-structures?type=presentation

Medlem sedan juni 20006 031 inlägg
#7

nitro2k01 skrev:

Pedda: Det säger fortfarande inget om hur många nivåer trädet har.

Helt rätt, jag missade att han hade mer än en (1) nivå.
Får väl skylla på att nivån i min Bowmore har sjunkit betänkligt. :e

Medlem sedan maj 20071 061 inlägg
#8

En funktion som anropar sig själv till dess "slutet" nås och samtidigt räknar upp en variabel är den lösningen jag skulle löst problemet med. Kanske inte så snabbt, men enkelt, oavsett om det är array eller databas det ligger i.

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)