Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2007, 09:48
fido85
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 20 años
Puntos: 0
Funcion recursiva

Buenas,

directo al grano!

tengo una tabla

Código:
categorias
  . ID_cat
  . nombre
  . padre
las filas serian
ID_cat (identificador) nombre (nombre de la categoria) padre (identificador del padre, osea un ID_cat)

Ej:

Código:
 1    -   Abuelo -  0
 2    -   Padre -   1
 3    -   Nieto -    2
 4    -   pringao - 2
 5    -   otro    -  3
Q: mi problema es como obtener todos lo hijos de una categoria y los hijos de los hijos!!!..

EJ: como obtener todos los hijos de la categoria padre y tamb los hijos de los hijos de padre
osea:

padre(2) -> nieto(3) -> otro(5)
-> pringao(4)

he intentado hacer esto pero no funciona del to,

Código PHP:
       // con este select, obtendria los hijos de la categoria
       
$_sql_cat "Select ID_cat from categorias where padre =".$ID_cat;
        
    
$resultado mysql_query($_sql_cat) or die(mysql_error());
    
$num mysql_num_rows($resultado);
        
    
// Inicio un array, para guardar los Ids de las categorias
    
$cats = array ($ID_cat);
    
    if(
$num  != 0)
    {
        while(
$linea mysql_fetch_array($resultado))
        {
            
// Hijo
            
$aux_hijo $linea['ID_cat'];        

                     
// Añadir al array el ID del hijo
            
$cats[] = $aux_hijo;

       
/* Aqui haria otro select para aberiguar los hijos del hijo...( q lio :P)
           
            EL PROBLEMA: es que pasa si este hijo tamb tiene hijos¿?
                 no puedo hacer whiles "manuales" porq
                 no hay limite de hijos y subhijos,  entonces como puedo hacer este bucle ¿?*/

               
}
         } 
espero haberme explicado minimamente bien, es un lio con tantos hijos!!



Gracias, de antemano ;)

Última edición por fido85; 08/02/2007 a las 02:30