Credo di aver capito!!!

io ho questa funzione lato php

codice:
function &cicla_cat($id,&$cat_sup) {
	
			$sql_cat=mysql_query('SELECT * FROM '.$GLOBALS['db_pref'].'categorie_produzione WHERE categoria_superiore="'.$id.'" ORDER BY categoria_pos;');
			
			echo mysql_error();
			
			if (mysql_num_rows($sql_cat)>0) {
						
					$k=0;
					while ($fetch_cat=mysql_fetch_assoc($sql_cat)) {
						$cat_sup[$k]['id']=$fetch_cat['categoria_id'];
						$cat_sup[$k]['nome']=$fetch_cat['categoria_nome'];
						
						cicla_cat($fetch_cat['categoria_id'],$cat_sup[$k]);
						
						$k++;
					}
				}
			
	
}
che crea il famoso array di cui sopra .. allora adesso per ogni livello faccio un count dei figli in modo tale che a smarty passo il numero di volte che deve ciclare ... provo e ti faccio sapere

Grazie mille Mike