Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2007, 00:50
Avatar de nachopro
nachopro
 
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 21 años, 3 meses
Puntos: 2
Categorías y Subcategorías en una única tabla

A ver si pueden ayudarme.

Intento armar un sistema de categorías y subcategorías infinitas en una
única tabla, pero tengo alguna falla en la función que arma el árbol de categorías.

La tabla que tengo es esta:

Shot at 2007-07-23

y el php para armar el árbol es el siguiente: (disculpen la desproligidad del código, pero pienso acomodarlo una vez que de con la función correcta):

Código PHP:
<?
mysql_connect
('localhost''root''');
mysql_select_db('test');

function 
hijos($id_padre)
{
    
$sql 'select * from categorias where id_padre = ('.$id_padre.')';
    
$rs mysql_query($sql);
    
$cantidad_hijos mysql_num_rows($rs);
    if (
$cantidad_hijos 0)
    {
        while (
$hijo mysql_fetch_assoc($rs))
        {
            
$hijos[$hijo['id']] = $hijo['nombre'];
        }
        return 
$hijos;
    }
    return 
false;
}

function 
mostrar_categoria($id_padre 0)
{
    
$rs mysql_query('select * from categorias where id_padre = ('.$id_padre.')');
    while (
$categoria mysql_fetch_assoc($rs))
    {
        echo 
$categoria['id'].' - '.$categoria['nombre'].'<br>';
        
$hijos hijos($categoria['id']);
        if (
$hijos)
        {
            foreach (
$hijos as $clave => $valor)
            {
                echo 
$clave.' - '.$valor.'<br>';
                
mostrar_categoria($clave);
            }
            
//echo 'tiene '.$hijos.' hijos';
        
}
        echo 
'<hr>';
    }
}

mostrar_categoria();

?>
Saludos