Avatar billede blaman Nybegynder
23. februar 2005 - 15:17 Der er 1 kommentar

Generer array til menu

Hej eksperter.

Jeg forsøger at lave en slags træmenu. Selve måden den sætter det op  på og viser resultatet virker fint. Se eventuelt koden nedenfor:

<?PHP
function indent($num) {
    for($i=0;$i<$num;$i++) {
        echo "&nbsp;&nbsp;&nbsp;"; 
    } 
}

function printmenu($arr, $indent = 0) {
    foreach($arr as $key => $cap) {
        if(is_array($cap)) {
            indent($indent);
            echo $key."<br>";
            printmenu($cap, ($indent+1)); 
        } else {
            indent($indent);
            echo $cap."<br>"; 
        }
    } 
}

$menu = array("Hovedmenu1"=>array("Undermenu1","Undermenu2"=>array("Undermenu3","Undermenu4"),"Foobar"),"jada");

echo printmenu($menu);
?>

problemet er at jeg gerne skulle have menuen lavet dynamisk, så den henter menuelementerne fra en tabel i min sql database.
Men hvordan jeg får det sat op som variablen $menu fatter jeg ikke helt.

Min databasestruktur ser sådan ud:

to tabeller:
- menu
- content

menu indeholder id, name
content indeholder id, name, ref, content

menu er de elementer der skal ligge yderst i træmenuen. Og under hvert punkt fra menuen skal den så kigge efter om der findes nogle  rækker fra content hvor ref er lig med idet fra menu.

Finder den en match skal den så kontrolere om der er ref til det id.

Altså en rekursiv løkke eller hvad det hedder.
Men aner ikke hvordan jeg skal lave det.
Avatar billede horsmark Nybegynder
20. september 2005 - 09:29 #1
jeg ved wodden dette laves men er dette spørgsmål stadig aktuelt ?
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