Ho capito pochino di quanto hai scritto :master:

Qualcosa del genere potrebbe andare?
Codice PHP:
function ns_get_path($id)
{
    global 
$tabella;
    
// Assicuriamoci di avere un intero
    
$id = (int)$id;
    
// Il percorso dalla radice al nodo
    
$path = array();

    
// Recupero i valori "sx" e "dx" del nodo
    
$sql "SELECT sx, dx FROM {$tabella} WHERE id={$id}";
    
$res mysql_query($sql);
    
$line mysql_fetch_assoc($res);
    
    
// Recupero il percorso
    
$sql "SELECT id, nome, ROUND((dx-sx-1)/2) AS figli FROM $tabella WHERE sx <= {$line['sx']} AND dx >= {$line['dx']} ORDER BY sx ASC";
    
$res mysql_query($sql);
    while (
$line mysql_fetch_assoc($res)) {
        
$path[] = "<a href=\"index.php?id={$line['id']}\">{$line['nome']}</a> ({$line['figli']})";
    }
    
    
// Restituisco il risultato
    
return $path;


In pratica nella query, oltre al nome ti fai restituire già l'ID e il numero di figli (calcolato dalla funzione ROUND di MySQL, cosi non devi calcolarla lato PHP).

Ho indovinato?