menu.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?php
/**
* @author Victor
* @copyright 2011
*/
/**
* menu structuur
* parentId 0 is bovenste laag
*/
/**
*
id parentId name
1 0 Vacatures
2 0 Tutorials
3 0 Scripts
4 0 Boeken
5 3 Algemeen
6 3 Overig
7 3 Beveiliging
8 5 Dynamisch menu
*/
/**
* Haal alle menu items op
* met 1 query
*/
$link = mysql_connect('localhost', 'gebruikersnaam', 'wachtwoord');
if(!$link) {
echo 'Kan geen verbinding tot stand brengen.<br />' . mysql_error();
}
$db = mysql_select_db('menu', $link);
if(!$db) {
echo 'Kan geen verbinding maken met database.<br />' . mysql_error();
}
$result = mysql_query("
SELECT
id, parentId, name
FROM
menu
ORDER BY
parentId, name
");
/**
* Maak een array met parent-child relaties
*/
$menuData = array(
'items' => array(),
'parents' => array()
);
while ($menuItem = mysql_fetch_assoc($result))
{
$menuData['items'][$menuItem['id']] = $menuItem;
$menuData['parents'][$menuItem['parentId']][] = $menuItem['id'];
}
/**
* Bouw het menu, $parentId 0 is de bovenste laag.
*/
function buildMenu($parentId, $menuData)
{
$html = '';
if (isset($menuData['parents'][$parentId]))
{
$html = '<ul>';
foreach ($menuData['parents'][$parentId] as $itemId)
{
$html .= '<li>' . $menuData['items'][$itemId]['name'];
/** Vind child items recursief **/
$html .= buildMenu($itemId, $menuData);
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
/**
* weergeef het menu op het scherm
*/
echo buildMenu(0, $menuData);
/**
* @author Victor
* @copyright 2011
*/
/**
* menu structuur
* parentId 0 is bovenste laag
*/
/**
*
id parentId name
1 0 Vacatures
2 0 Tutorials
3 0 Scripts
4 0 Boeken
5 3 Algemeen
6 3 Overig
7 3 Beveiliging
8 5 Dynamisch menu
*/
/**
* Haal alle menu items op
* met 1 query
*/
$link = mysql_connect('localhost', 'gebruikersnaam', 'wachtwoord');
if(!$link) {
echo 'Kan geen verbinding tot stand brengen.<br />' . mysql_error();
}
$db = mysql_select_db('menu', $link);
if(!$db) {
echo 'Kan geen verbinding maken met database.<br />' . mysql_error();
}
$result = mysql_query("
SELECT
id, parentId, name
FROM
menu
ORDER BY
parentId, name
");
/**
* Maak een array met parent-child relaties
*/
$menuData = array(
'items' => array(),
'parents' => array()
);
while ($menuItem = mysql_fetch_assoc($result))
{
$menuData['items'][$menuItem['id']] = $menuItem;
$menuData['parents'][$menuItem['parentId']][] = $menuItem['id'];
}
/**
* Bouw het menu, $parentId 0 is de bovenste laag.
*/
function buildMenu($parentId, $menuData)
{
$html = '';
if (isset($menuData['parents'][$parentId]))
{
$html = '<ul>';
foreach ($menuData['parents'][$parentId] as $itemId)
{
$html .= '<li>' . $menuData['items'][$itemId]['name'];
/** Vind child items recursief **/
$html .= buildMenu($itemId, $menuData);
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
/**
* weergeef het menu op het scherm
*/
echo buildMenu(0, $menuData);