Can anyone see the problems with this code as I just cant see it?
I wrote this code for a nav menu and I am getting some unexpected results. Here is the code.
PHP Code:
<?php
// Script used to dynamically generate navigation manu for
$q = "SELECT link, name FROM top_menu";
$r = mysqli_query($dbc, $q);
$menu = mysqli_fetch_array($r, MYSQLI_ASSOC);
echo '<nav>';
echo '<ul id="menu">';
echo '<li><a href="' . $menu[0]['link'] . '" title="' . $menu[0]['name'] . '">' . $menu[0]['name'] . '</a></li>'; // Home Link
echo '<li><a href="' . $menu[1]['link'] . '" title="' . $menu[1]['name'] . '">' . $menu[1]['name'] . '</a>'; // Top Ten Travel List Link
echo '<ul id="first-sub-menu">';
$qs = "SELECT * FROM state_menu WHERE category_id=2";
$rs = mysqli_query($dbc, $qs);
while ($state_menu = mysqli_fetch_array($rs, MYSQLI_ASSOC)) {
echo '<li><a href="'.$state_menu['link'].'" title="'.$state_menu['name'].'">'.$state_menu['name'].'</a></li>';
}
echo '</ul>';
echo '</li>';
echo '<li><a href="'.$menu[2]['link'].'" title="'.$menu[2]['name'].'">'.$menu[2]['name'].'</a></li>'; // Travel Blog Link
echo '<li><a href="'.$menu[3]['link'].'" title="'.$menu[3]['name'].'">'.$menu[3]['name'].'</a>'; // Resturant Menu
echo '<ul id="first-sub-menu">';
$qrs = "SELECT DISTICNT s.link, s.name, s.state_id FROM state_menu AS s LEFT JOIN resturant_menu AS r USING (state_id) WHERE r.state_id=s.state_id AND category_id=3 ORDER BY s.state_id";
$rrs = mysqli_query($dbc, $qrs);
while ($state_menu_rr = mysqli_fetch_array($rrs, MYSQLI_ASSOC)) {
echo '<li><a href="'.$state_menu_rr['link'].'" title="'.$state_menu_rr['name'].'">'.$state_menu_rr.'</a>';
echo '<ul id="second-sub-menu">';
$qrm = "SELECT link, name FROM resturant_menu WHERE state_id={$state_menu_rr['state_id']}";
$rr = mysqli_query($dbc, $qrm);
while ($resturant_menu = mysqli_fetch_array($rr, MYSQLI_ASSOC)) {
echo '<li><a href="rr.php'.$resturant_menu['link'].'" title="'.$resturant_menu['name'].'">'.$resturant_menu['name'].'</a></li>';
}
echo '</ul>';
echo '</li>';
}
echo '</ul>';
echo '</li>';
echo '<li><a href="'.$menu[4]['link'].'" title="'.$menu[4]['name'].'">'.$menu[4]['name'].'</a>'; // Hotel Menu
echo '<ul id="first-sub-menu">';
$qhs = "SELECT DISTICNT s.link, s.name, s.state_id FROM state_menu AS s LEFT JOIN hotel_menu AS h USING (state_id) WHERE h.state_id=s.state_id AND category_id=4 ORDER BY s.state_id";
$hrs = mysqli_query($dbc, $qhs);
while ($state_menu_hr = mysqli_fetch_array($hrs, MYSQLI_ASSOC)) {
echo '<li><a href="'.$state_menu_hr['link'].'" title="'.$state_menu_hr['name'].'">'.$state_menu_hr.'</a>';
echo '<ul id="second-sub-menu">';
$qhm = "SELECT link, name FROM hotel_menu WHERE state_id={$state_menu_hr['state_id']}";
$hr = mysqli_query($dbc, $qhm);
while ($hotel_menu = mysqli_fetch_array($hr, MYSQLI_ASSOC)) {
echo '<li><a href="hr.php'.$hotel_menu['link'].'" title="'.$hotel_menu['name'].'">'.$hotel_menu['name'].'</a></li>';
}
echo '</ul>'; // Closing the second-sub-menu.
echo '</li>'; // Closing the link from the state menu.
}
echo '</ul>';
echo '</li>';
echo '<li><a href="'.$menu[5]['link'].'" title="'.$menu[5]['name'].'">'.$menu[5]['name'].'</a></li>';
echo '</ul>';
echo '</nav>';
Here is a screen shot of what I am getting:
Attachment 15367