Non ci sono ancora!!!

la funzione php che genera l'array ora modificata è questa:

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;');
			
			$num_cat=mysql_num_rows($sql_cat);
			$cat_sup['numero_figli']=$num_cat;
			
			if ($num_cat>0) {
						
					$k=0;
					while ($fetch_cat=mysql_fetch_assoc($sql_cat)) {
						
						$cat_sup[$k]['ciclo']=$k;
						$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++;
					}
				}
			
	
}
questa la chiamata alla funzione ....

codice:
$elementi=array();
$elementi['ciclo']=0;
cicla_cat(0,$elementi);
nella variabile ciclo di ogni livello c'è l'indice stesso di quel livello ... il primo l'ho inizializzato a 0.

ora nel codice del tpl ho messo

codice:
{foreach item=elemento from=$elementi}   
  
<div>
{$elemento.nome}
		
    	{foreach item=figli from=$elemento.ciclo}
     
             <div> -> {include file="categorie_produzione/sottocategorie.tpl"}</div>

        {/foreach}
</div>
    
{foreachelse}
        Nessuna Categoria presente.
{/foreach}

e nel sottocategire.tpl

codice:
{$figli.nome}

    	{foreach item=figli from=$figli.ciclo}
        	
             <div> -> {include file="categorie_produzione/sottocategorie.tpl"}</div>

        {/foreach}
ma ottengo un ciclo infinito :S .....

arghhhhh

dove sbaglio? denkiu