Avatar billede soduno Novice
12. november 2011 - 14:35 Der er 3 kommentarer og
1 løsning

PHP Multilevel menu

Hejsa.

Er ved at lave en webshop med kategorier og underkategorier.
Det skal være muligt at lave lige så mange underkategorier som man ønsker til hver kategori, eller til hver oprettet underkategori.

Jeg er dog lidt i tvivl om hvordan min php kode skal se ud.

Databasen over mine kategorier ser således ud:
ID - Name - Parent

VH Simon
Avatar billede groyk Novice
12. november 2011 - 18:58 #1
Hej Simon

prøv dette link

artiklen kan være en smule "hardcore". Dog kun indtil man får en smule erfaring.

http://www.sitepoint.com/hierarchical-data-database/

mvh
Simon
Avatar billede soduno Novice
15. november 2011 - 01:17 #2
#Groyk-> Tak for dit indlæg. Fandt faktisk frem til en anden løsning hvor man kunne få vist
selve menu træet. Det der er mit problem nu er bare hvordan jeg får lavet dem om til links? Altså så ikke alle menuer bliver vist på en gang.

Fand denne kode:

<?php
// get all menuitems with 1 query
$result = mysql_query("SELECT cat_id, cat_parent, cat_name FROM categories ORDER BY cat_id, cat_name ");

// prepare special array with parent-child relations
$menuData = array(
    'items' => array(),
    'parents' => array()
);

while ($menuItem = mysql_fetch_assoc($result))
{
    $menuData['items'][$menuItem['cat_id']] = $menuItem;
    $menuData['parents'][$menuItem['cat_parent']][] = $menuItem['cat_id'];
}

// menu builder function, parentId 0 is the root
function buildMenu($parentId, $menuData)
{
    $html = '';

    if (isset($menuData['parents'][$parentId]))
    {
        $html = '<ul>';
        foreach ($menuData['parents'][$parentId] as $itemId)
        {
            $html .= '<li>' . $menuData['items'][$itemId]['cat_name'];

            // find childitems recursively
            $html .= buildMenu($itemId, $menuData);

            $html .= '</li>';
        }
        $html .= '</ul>';
    }

    return $html;
}

// output the menu
echo buildMenu(0, $menuData);
?>
Avatar billede soduno Novice
22. oktober 2012 - 14:17 #3
Groyk-> Lægger du lige et svar så jeg kan få lukke tråden? :-)
Avatar billede groyk Novice
22. oktober 2012 - 15:36 #4
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