Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/07/2011, 04:04
Avatar de bet7o
bet7o
 
Fecha de Ingreso: febrero-2010
Ubicación: DF
Mensajes: 315
Antigüedad: 14 años, 10 meses
Puntos: 20
Respuesta: Mostrar categorias con funcion recursiva

Al final me quedo en una sola tabla con relacion recursiva, como la tenia y el script es este

Código PHP:
Ver original
  1. public function treeCategory($parent = NULL, $child = 0, $nombre = NULL)
  2.  
  3.   {
  4.  
  5.     $conditions = $child == 0 ? 'categoria_id IS NULL' : "categoria_id = $parent";
  6.  
  7.     /* Categorias padres */
  8.  
  9.     $rs = $this->find("conditions: $conditions");
  10.  
  11.     if(!$rs) return;
  12.  
  13.     $path = array();
  14.  
  15.     /* Iteraccion de categorias padres */
  16.  
  17.     foreach($rs as $item)
  18.  
  19.     {
  20.  
  21.       $path[$item->id] = Validate::isNull($nombre) ? $item->nombre : "$nombre > $item->nombre";
  22.  
  23.       /* Iteraccion de categorias hijas */
  24.  
  25.       $childs = $this->treeCategory($item->id, 1, $path[$item->id]);
  26.  
  27.       if(count($childs) > 0) foreach($childs as $k => $v) $path[$k] = $v;
  28.  
  29.     }
  30.  
  31.     return $path;
  32.  
  33.   }

Yo utilizo un FW pero la idea se puede captar muy bien, si alguien tiene algo mejor estaria muy bien que lo comentara.

Saludos!
__________________
Pero el no contaba con una cosa, mi peligroso desinteres por la vida humana