-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunction.php
48 lines (45 loc) · 1.04 KB
/
function.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
<?php
function getMenu($parent = null)
{
global $conn;
$menus = [];
$sql = "SELECT * FROM menus WHERE ";
$sql .= $parent === null ? "parent IS NULL" : "parent = $parent";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$row['menus'] = getMenu($row['id']);
$row['subMenus'] = getSubMenus($row['id']);
$menus[] = $row;
}
return $menus;
}
function getSubMenus($parent)
{
global $conn;
$subMenus = [];
$sql = "SELECT * FROM subMenus WHERE parent = $parent";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$subMenus[] = $row;
}
return $subMenus;
}
function renderMenu($menus)
{
echo "<ul>";
foreach ($menus as $menu) {
echo "<li>{$menu['name']}";
if (!empty($menu['menus'])) {
renderMenu($menu['menus']);
}
if (!empty($menu['subMenus'])) {
echo "<ul>";
foreach ($menu['subMenus'] as $subMenu) {
echo "<li>{$subMenu['name']}</li>";
}
echo "</ul>";
}
echo "</li>";
}
echo "</ul>";
}