下面的代码应该能实现你的要求,
<?php 
$GLOBALS["ID"] =1;
$layer=1; $Con=mysql_connect("localhost","root","password"); 
mysql_select_db("kb"); $sql="select * from menu where parent_id=0";
$result=mysql_query($sql,$Con); if(mysql_num_rows($result)>0) ShowTreeMenu($Con,$result,$layer,$ID); 
function ShowTreeMenu($Con,$result,$layer) 
{ $numrows=mysql_num_rows($result); echo "<table cellpadding='0' cellspacing='0' border='0'>"; for($rows=0;$rows<$numrows;$rows++) 
{ $menu=mysql_fetch_array($result); $sql="select * from menu where parent_id=$menu[id]"; 
$result_sub=mysql_query($sql,$Con); echo "<tr>"; if(mysql_num_rows($result_sub)>0) 

echo "<td width='20'><img src='folder.gif' border='0'></td>"; 
echo "<td class='Menu' onClick='javascript:ShowMenu(Menu".$GLOBALS["ID"].");'>"; 

else 

echo "<td width='20'><img src='file.gif' border='0'></td>"; 
echo "<td class='Menu'>"; 
} if($menu[url]!="") 
echo "<a href='$menu[url]' target = 'rightframe'>$menu[name]</a>"; 
else 
echo $menu[name]; 
echo " 
</td> 
</tr> 
"; if(mysql_num_rows($result_sub)>0) 

echo "<tr id=Menu".$GLOBALS["ID"]++." style='display:none'>"; 
echo "<td width='20'>&nbsp;</td>"; 
echo "<td>"; $layer++; 
ShowTreeMenu($Con,$result_sub,$layer); $layer--; 
echo "</td></tr>"; 


echo "</table>"; 

?> 
js代码
function ShowMenu(MenuID) 

if(MenuID.style.display=="none") 

MenuID.style.display=""; 

else 

MenuID.style.display="none";