Recently I needed to come up with a code that would help me create a n-level menu and breadcrumb for that. So for that I wrote this code which works with great ease and provides huge flexibility. Also I kept it really low so that it is easy to embedded it in any kind of design. This is just the half part of my code which prints the menu.
Function:
$table = 'menu'; /** * The showMenu() function prints the menu with all its sub menus * @params: $ulclass common class to be applied in ul elements $liclass common class to be applied in li elements $father Father of each child menu. Pass '0' to print complete menu. * return: string */ function showMenu($ulclass, $liclass, $father) { $showmenu_query = "select * from $table where menu_father='" . $father . "' order by menu_order"; $exec_showmenu = mysql_query($showmenu_query); if ( !$exec_showmenu) { echo "Query failed. Check your query. Error Returned: " . mysql_error(); return false; } $toAppend = '<ul class="' . $ulclass . '">'; while ($row_showmenu = mysql_fetch_assoc($exec_showmenu)) { $toAppend.= '<li class="' . $liclass . ' '. $row_showmenu['menu_class'] . '">'; $toAppend.= '<a href="' . stripslashes($row_showmenu['menu_slug']) . '">' . stripslashes($row_showmenu['menu_name']); $toAppend.= '</a>'; $submenu_query = "select * from $table where menu_father='" . $row_showmenu['menu_id'] . "'"; $exec_submenu = mysql_query($submenu_query); if (mysql_num_rows($exec_submenu)>0 ) { $toAppend.= $showMenu($ulclass, $liclass, $row_showmenu['menu_id']); } $toAppend.= '</li>'; } $toAppend.= '</ul>'; return $toAppend; }Continue reading “PHP N-level menu using recursion with DB structure”