Foros del Web » Programando para Internet » PHP »

Ayuda con funcion recursiva

Estas en el tema de Ayuda con funcion recursiva en el foro de PHP en Foros del Web. Saludos, tengo una funcion recursiva que muestra un arbol con categorias con sus respectivos hijos, n cantidad de hijos. Pero me gustaria saber si hay ...
  #1 (permalink)  
Antiguo 15/05/2010, 20:56
 
Fecha de Ingreso: diciembre-2003
Mensajes: 82
Antigüedad: 16 años, 2 meses
Puntos: 1
Ayuda con funcion recursiva

Saludos, tengo una funcion recursiva que muestra un arbol con categorias con sus respectivos hijos, n cantidad de hijos.

Pero me gustaria saber si hay otra forma de hacerlo, ya que al parecer las funciones recursivan cuando el bucle es muy grande pueden dar problemas o consumir muchos recursos.

Les agradeceria me ayuden a mejorar esta funcion para crear un arbol de categorias.


esta es la funcion que utilizo para generar el arbol.


Código PHP:
function Arbol($padre,&$categorias)
{
    
        
 
$Rsql "SELECT categoriaid,categorianombre FROM categorias where categoriapadre  = '$padre' order by posicion asc";
    
  
$Rq mysql_query($Rsql);
        
        
        while(
$Cat mysql_fetch_assoc($Rq))
        {
            
                
            
                
$menu[] = $Cat['nombre'];
                
Arbol($Cat['categoriaid'],$categorias);
         }
                
                    
    return 
$categorias;
            

necesito mejorar esta funcion si se puede ya que son miles de registros los que tendra que leer la base antes de hacer el return con el array de las categorias.

muchas gracias por su ayuda.

Macwarez.
  #2 (permalink)  
Antiguo 15/05/2010, 22:44
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 11 años, 11 meses
Puntos: 10
Respuesta: Ayuda con funcion recursiva

//seleccionas estos campos:

categoriaid,categorianombre

//luego recuperas:

//no existe
$Cat['nombre']; //seria "categorianombre" ...?
si exixte: "categoriaid"
$Cat['categoriaid'];

En todo caso hazlo asi:

$Rsql = "SELECT * ..."; con el asteristico tendras todos los campos asegurados.

(aunque puede consumir)


Eso para ir empezando...

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:27.