Avatar billede budda Nybegynder
15. januar 2006 - 13:32 Der er 1 kommentar og
2 løsninger

Lave menu baseret på en database.

Hej eksperter.

Jeg har en database der ser således ud:
id -> ID på menupunktet
parentid -> hvilket ID det knyttersig op af.
menuname -> Tekst: navn på menu punktet.

Det jeg gerne ville er man kan lave en masse undermenuer.
Så der det kommer til at så således ud:
Menu1
|_Undermenu1
..|_UnderUndermenu
|_Undermenu2

osv. Dog skal det også være muligt at komme ned i 10 led.
dvs:
Menu
|_Undermenu
..|_Undermenu
......|_Undermenu
..........|_Undermenu
.............|_Undermenu
.................|_Undermenu
...................|_Undermenu
.....................|_Undermenu
.......................|_Undermenu

Håber det giver mening.

Meningen er så at et PHP script skal generere det automatisk.

Der skal også være mulighed for flere menu punkter...

Mit problem PT er at jeg bare sætter uendeligmange løkker ind som bare gør scriptet mega langsomt.
Avatar billede well_r Nybegynder
15. januar 2006 - 13:47 #1
rekursion er svaret.

function menuer($id = 0,$indryk = 0){
  $res = mysql_query("SELECT * FROM menuer where parent='$id'");
  while ($row = mysql_fetch_array($res)){
    for ($i=0;$i<=$indryk;$i++){
      print ".";
    }
    print "|_".$row[navn];
    menuer($row[id],$indryk+1);
  }
}
Avatar billede well_r Nybegynder
15. januar 2006 - 13:48 #2
din tabel skal så se sådan ud:
id | parent | navn

id = unikke id til hver menupunkt
parent = menuen som den hører ind under (0 = at det er en hovedmenu)
navn = navnet på menupunktet.
Avatar billede budda Nybegynder
15. januar 2006 - 13:50 #3
Tak well_r

Ja kom også ind på det med at sætte funktionen ind for 2 min siden hehe :)

Måske skal man tænke før man spørger :)

Men svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester