Estoy trabajando en esta función recursiva pero no me funciona a partir del segundo nivel, y me estoy volviendo loco

Código PHP:
function recursiva($id_padre, $familia){
$sql_rec = "SELECT * FROM subfam WHERE familia LIKE '$familia' AND Subfadep LIKE '$id_padre'";
$res_rec = mysql_query($sql_rec);
$folder=1;
if ($res_rec){ ?>
<ul>
<?php while($fila_rec = mysql_fetch_array($res_rec)){ ?>
<?php $folder = $folder + 1; ?>
<li class="closed">
<span class="folder<?php echo $folder; ?>"><a href="#"><?php echo htmlentities($fila_rec["Descripcio"]);?></a></span>
</li>
<?php recursiva($fila_rec["Subfamilia"], $familia); ?>
<?php }?>
</ul>
<?php }
} ?>
<?php
function rellenar_recursivo() {
$sql="SELECT * FROM tablaart";
$res=mysql_query($sql) or die (mysql_error());
if ($res){ ?>
<?php while($fila = mysql_fetch_array($res)){ ?>
<?php
$sql2="SELECT * FROM subfam WHERE familia LIKE '{$fila['Codigo']}' AND (Subfadep LIKE '' OR Subfadep IS NULL)";
$res2=mysql_query($sql2);
?>
<?php if ($res2){ ?>
<ul>
<?php while($fila2 = mysql_fetch_array($res2)){ ?>
<li class="closed">
<span class="folder"><a href="#" class="clase1"><?php echo htmlentities($fila2['Descripcio']); ?></a></span>
<?php recursiva($fila2['Subfamilia'], $fila['Codigo']); ?>
</li>
<?php } ?>
</ul>
<?php }
}
}
}
?>
<div id="main">
<ul id="browser" class="filetree">
<?php rellenar_recursivo(); ?>
</ul>
</div>