Ik heb een multilevel menu gemaakt in een MySQL database dat helaas niet goed wordt uitgelezen door mijn PHP scriptje, deze blijft onbedoeld namelijk items herhalen. Bijvoorbeeld:
- Nieuws
-- Product 1
- Producten
-- Product 1
- etc.
Met onderstaande functie lees ik de hoofdcategorien en alle submenu's uit:
Ter illustratie hoe een gevulde tabel er ongeveer uit ziet:
m_id | m_categorie | m_parentid
1 Nieuws 0
2 Producten 0
3 Nieuwsitems 1
4 Product 1 2
5 Product 2 2
m_id is een int en wordt automatisch verhoogd
m_categorie is de naam van de hoofdcategorie of subcategorie
m_partentid is het id van de parent, 0 is de hoofdcategorie.
De bedoeling is iig dat het menu oneindig diep kan worden en dat ik als beheerder gemakkelijk levels met bijbehorende pagina's kan toevoegen en verwijderen. Ik denk er bijna te zijn maar mis waarschijnlijk iets kleins.
- Nieuws
-- Product 1
- Producten
-- Product 1
- etc.
Met onderstaande functie lees ik de hoofdcategorien en alle submenu's uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <?php function toon_menu($m_id, $m_parentid) { $result = mysql_query('SELECT m_categorie FROM menu WHERE m_parentid="'.$m_parentid.'''); while ($row = mysql_fetch_array($result)) { echo str_repeat(' ',$m_parentid).$row['m_categorie']."<br>\n"; toon_menu($row['m_categorie'], $m_parentid+1); } } toon_menu(0,0); ?> |
Ter illustratie hoe een gevulde tabel er ongeveer uit ziet:
m_id | m_categorie | m_parentid
1 Nieuws 0
2 Producten 0
3 Nieuwsitems 1
4 Product 1 2
5 Product 2 2
m_id is een int en wordt automatisch verhoogd
m_categorie is de naam van de hoofdcategorie of subcategorie
m_partentid is het id van de parent, 0 is de hoofdcategorie.
De bedoeling is iig dat het menu oneindig diep kan worden en dat ik als beheerder gemakkelijk levels met bijbehorende pagina's kan toevoegen en verwijderen. Ik denk er bijna te zijn maar mis waarschijnlijk iets kleins.