Allora sto proseguendo nel tentativo di trovare una soluzione, ma qui con i nodi sto sbagliando di sicuro qualcosa perché il risultato è incompleto. Ho recuperato un codice javascript per la gestione dei nodi ed ho cercato di aggiornare il mio file. Questo il codice:

Codice PHP:
<script type="text/javascript">
<!--
if (document.images) {
   var lastNode;
}

function showItem(node) {
    if (lastNode != null ) {
        var tempNode = lastNode.parentNode.firstChild
        while (tempNode != null) {
            if (tempNode.nodeName == "DIV" && tempNode.className == "item") {
                tempNode.style.display="none";
                }
            tempNode = tempNode.nextSibling;
            }
    }
    lastNode=node;
    
    var itemNode = node.nextSibling;        

    while (itemNode.nodeName != "DIV" && itemNode.className != "item")  {
        itemNode = itemNode.nextSibling;
    }

    var tempNode = node.parentNode.firstChild
    while (tempNode != null) {
        if (tempNode.nodeName == "DIV" && tempNode.className == "item") {
            if (tempNode.style.display == "none"){
            tempNode.style.display="block";
             }

             else
             {
            tempNode.style.display = "none";
            }
        }
        tempNode = tempNode.nextSibling;
    }
}
//-->
</script>

<body>
 <?php 

include ("config.inc.php"); 
include (
"connect.php");

$query ="SELECT * FROM cat_it ORDER BY idcat";

$result mysql_query($query,$db) or die (mysql_error());
$tot mysql_num_rows($result);

while (
$row mysql_fetch_array($result)) {

$id $row['idcat'];
$categoria $row['categoria'];


echo 
"<table>
<tr >
        
      <td colspan='2'  class='nav1stLevel'> [url='#']
$categoria[/url]
        <div class='item' style='display:none;'> 
            <table cellspacing='0' cellpadding='0' border='0'>
            <tr ><td width='10' bgcolor='#FFFFFF' >>
$link2</td>            
              <td colspan='2'  bgcolor='#FFFFFF' width='160'> 

              [url='...'][/url] 
            </td>
            </tr>
            
      </tr>
</table>"
;
 
 
//}
}
?>
così facendo mi compare soltanto una voce e non tutti le voci delle categorie...

L'idea è giusta però? E' la strada corretta per un menu verticale che recupera valori da mysql?