El tema de hacer un menu desplegable no es de PHP, sino de DHTML o JavaScript, yo cuando tengo uq ehacer este tipo de menus utilizo capas y dentro de estas capas cargo lo necesario.
Código PHP:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) {
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_showHideLayers() {
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
obj.visibility=v; }
}
//-->
</script>
<div class="MENUS" id="Layer1" style="position:absolute; left:0px; top:135px; width:74px; height:48px; z-index:1; visibility: hidden;" onClick="MM_showHideLayers('Layer1','','hide')">
<table cellpadding="3" cellspacing="0" border="0" width="100%" height="100%">
<tr>
<td>
<font face="verdana" size="1"><strong><a href="playas.php?playa=bizkaia&x=1">Bizkaia</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="playas.php?playa=gipuzkoa&x=1">Gipuzkoa</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="playas.php?playa=lapurdi&x=1">Lapurdi</a></strong></font><br>
</td>
</tr>
</table>
</div>
<div class="MENUS" id="Layer2" style="position:absolute; left:73px; top:135px; width:100px; height:55px; z-index:2; visibility: hidden;" onClick="MM_showHideLayers('Layer2','','hide')">
<table cellpadding="3" cellspacing="0" border="0" width="100%" height="100%">
<tr>
<td>
<font face="verdana" size="1"><strong><a href="">Banderas</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">El Tiempo</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">Socorrismo</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">Libro de visitas</a></strong></font><br>
</td>
</tr>
</table>
</div>
<div class="MENUS" id="Layer3" style="position:absolute; left:145px; top:135px; width:110px; height:60px; z-index:3; visibility: hidden;" onClick="MM_showHideLayers('Layer3','','hide')">
<table cellpadding="3" cellspacing="0" border="0" width="100%" height="100%">
<tr>
<td>
<font face="verdana" size="1"><strong><a href="">Web cam</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">Predicción de olas</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="galeria.php">Galería</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">Videos</a></strong></font><br>
<font face="verdana" size="1"><strong><a href="">Links</a></strong></font><br>
</td>
</tr>
</table>
</div>
En donde tengo yo puestos mis menus deberias hacer la conexion a la base de datos y desplegar los datos que tu necesites para hacer el menu. Espero que te sirva de algo el codigo que te e puesto.