Dynamiczne menu PHP mysql

Witam,
Chciałbym zapytać Was, jak zrobić dynamiczne menu, ale drugiego poziomu? Pierwszy poziom mam, ale gdy najadę myszką na każdy link, to pod każdym wyświetla mi się lista rozwijana, a chce tylko pod jedną.
Tak mam napisane:




    <?php
    		  if ($result = $db->query($get_page_link)){
    			 if($result->num_rows>0){
    			  while($row = $result->fetch_object()){
    				  
    				  ?>
    				   <li> <a href="<?php echo $row->link_page?>"><?php echo $row->name_page; ?></a>
    				  
    				    <?php 
    				   $get_name_submenu = "select href, title_page from  xpl_menu, xpl_submenu  where type_page = 'cats' and xpl_menu.id = 3 ";
    					  
    
    				  if($get_name = $db->query($get_name_submenu)){
    					  if($get_name->num_rows > 0){
    							while($row = $get_name->fetch_object()){
    				             echo "<ul>";
    				              echo "<li><a href=\"$row->href\">$row->title_page</a></li>";
    				             echo "</ul>";
    				 
    							}
    						}
    				  }
    					
    				 ?>
    		
    				
    				 </li>
    				<?php
     
    			  }
    		  }
    		}
    
    	     ?>
    	    
    	</ol>
    	</nav>
    </div>
    

    Mam dwie tabele z której pobieram. Zobaczyłem na jednym tutorialu, że działa, ale z PDO, a ja chcę z użyciem new mysqli. Nie chcę mieć dwóch rodzajów połączeń.
    Jak nie da się, to ewentualnie zrobię inaczej. Statyczne główne menu, a dynamiczne będzie pokazywanie podstron przy wskazaniu nazw.

Dawno w PHP nie pisałem, ale powinno być dobrze(na symulację jestem zbyt leniwy).

<?php

	if ($result = $db->query($get_page_link))
	{
		 if($result->num_rows>0)
		 {
			  while($row = $result->fetch_object())
			  {
				  
				  ?>
				   <li> <a href="<?php echo $row->link_page; ?>"><?php echo $row->name_page; ?></a>
				  
				    <?php 
				  $get_name_submenu = "SELECT href, title_page FROM  xpl_menu, xpl_submenu WHERE type_page = 'cats' AND xpl_menu.id = 3 ";
					  

				  if($get_name = $db->query($get_name_submenu))
				  {
					if($get_name->num_rows > 0)
					{
						echo "<ul>";
						while($rowy = $get_name->fetch_object())
						{ 
						?>
						     <li><a href="<?php echo $rowy->href; ?>"><?php echo $rowy->title_page; ?></a></li>
						<?php
						}
						echo "</ul>";
					}
				  }
					
				 ?>
		
				
				 </li>
				<?php
 
			  }
	  	}
	}

Nie działa, znaczy, efekt jest taki sam, jaki miałem wcześniej. Pozostają mi kilka wyjść, że jeden kod pobiera zwykłe strony i linki segregując wg.Id a kategorie z rozwijaną dać na koniec, tylko wtedy jest jedna wada, kategoria, która jest na końcu, nie będzie zmieniała miejsca. Tzn. jak mamy start, o stronie, logowanie, rejestracja i kategoria, to ta kategoria zawsze będzie na końcu. Ewentualnie zrobić kompozycję menu.