PusatHosting
Hosting Guru
Ini saya temukan script php code multilevel menu dengan single Query karena agak susah nyarinya kemarin maka itu saya duplikasi postingnya disini supaya lebih banyak ter-index nya dan lebih mudah ditemukan.
Script php multilevel menu memang banyak samplenya tapi rata-rata looping memanggil query mysql berkali-kali dan saya rasa pemborosan.
Ini kodenya,
Dan ini adalah menu buildernya
Kode diatas sudah saya coba dan berjalan lancar, jadi selamat mencoba.
Sumber : http://wizardinternetsolutions.com/articles/web-programming/single-query-dynamic-multi-level-menu
Script php multilevel menu memang banyak samplenya tapi rata-rata looping memanggil query mysql berkali-kali dan saya rasa pemborosan.
Ini kodenya,
Code:
// Select all entries from the menu table
$result=mysql_query("SELECT id, label, link, parent FROM menu ORDER BY parent, sort, label");
// Create a multidimensional array to conatin a list of items and parents
$menu = array(
'items' => array(),
'parents' => array()
);
// Builds the array lists with data from the menu table
while ($items = mysql_fetch_assoc($result))
{
// Creates entry into items array with current menu item id ie. $menu['items'][1]
$menu['items'][$items['id']] = $items;
// Creates entry into parents array. Parents array contains a list of all items with children
$menu['parents'][$items['parent']][] = $items['id'];
}
Dan ini adalah menu buildernya
Code:
// Menu builder function, parentId 0 is the root
function buildMenu($parent, $menu)
{
$html = "";
if (isset($menu['parents'][$parent]))
{
$html .= "
<ul>\n";
foreach ($menu['parents'][$parent] as $itemId)
{
if(!isset($menu['parents'][$itemId]))
{
$html .= "<li>\n <a href='".$menu['items'][$itemId]['link']."'>".$menu['items'][$itemId]['label']."</a>\n</li> \n";
}
if(isset($menu['parents'][$itemId]))
{
$html .= "
<li>\n <a href='".$menu['items'][$itemId]['link']."'>".$menu['items'][$itemId]['label']."</a> \n";
$html .= buildMenu($itemId, $menu);
$html .= "</li> \n";
}
}
$html .= "</ul> \n";
}
return $html;
}
echo buildMenu(0, $menu);
Kode diatas sudah saya coba dan berjalan lancar, jadi selamat mencoba.
Sumber : http://wizardinternetsolutions.com/articles/web-programming/single-query-dynamic-multi-level-menu