Foros del Web » Programando para Internet » PHP »

Recursividad Inversa

Estas en el tema de Recursividad Inversa en el foro de PHP en Foros del Web. Hola....tengo un problema que me rompe la cabeza...algo raro. No sabia si esto va en Bases de Datos o aqui...pero bueno....ya habra alguien que lo ...
  #1 (permalink)  
Antiguo 17/03/2006, 12:16
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
Recursividad Inversa

Hola....tengo un problema que me rompe la cabeza...algo raro. No sabia si esto va en Bases de Datos o aqui...pero bueno....ya habra alguien que lo mueva a su lugar correspondiente.


Sucede que tengo una tabla tipica de categorias con id, title y parent_id la cual tiene X numero de registros. En esta tabla, siempre se llega hasta un nivel 2 de profundidad....(0 categorias, 1 subcategorias y 2 subsubcategorias). Yo de alguna manera se cuales son los registros que necesito en el nivel 2...y puedo saber cuales son sus subcategorias y categorias a las que pertenecen mediante una funcion recursiva que vaya desde abajo, hasta arriba. Mi problema es que a la hora de obtener el objeto array (todo el arbol lo guardo en un array) este lo tengo invertido....

osea....


$mis_datos[subsubcategoria][subcategoria][categoria];



y lo necesito de la manera normal...

$mis_datos[categoria][subcategoria][subsubcategoria];


existe un algoritmo que me permita sacar informacion recursivamente de algo, pero que todo eso se guarde invertido?

saludos!
__________________
www.subflash.com <-----visita
  #2 (permalink)  
Antiguo 17/03/2006, 12:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
¿Te servirá esta función propuesta en esta FAQ? (aplicar recursividad para leer el arbol completo según un modelo de datos como presentas (con un id_padre o paren_id o como quieras llamarlo que hace referencia a quien es su "padre" tal registro).

http://www.forosdelweb.com/showpost....&postcount=146

Un saludo,
  #3 (permalink)  
Antiguo 17/03/2006, 13:19
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
pues....esa es una funcion recursiva...asi es como la tengo...pero no es lo que me sirve....

con otras palabras....imaginate que tengo un catalogo con dos tablas...la de categorias y la de productos vinculadas a traves de un campo categoria en la tabla productos. Yo si quiero ver todas las categorias, uso una funcion como la que me das el link....pero ahora quiero filtrar esas categorias dependiendo x condicion en la tabla productos. O sea, que me cree el arbol de aquellas categorias cuyos productos cumplan con la condicion requerida.

no es tan facil :P
__________________
www.subflash.com <-----visita
  #4 (permalink)  
Antiguo 17/03/2006, 14:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Según entiendo .. si dices que debes mostrar las categorías según tal parámetro de otra tabla relacionada .. sería cosa de que modifiques esta consulta SQL simple:

$sql='select * from '.$tabla.' where '.$link_field.'='.$parant;

para que añadas tu otra tabla a base de INNERT JOIN o equivalentes (creo .. no lo he probado pero creo que por ahí andaría el tema).

Un saludo,
  #5 (permalink)  
Antiguo 17/03/2006, 15:40
 
Fecha de Ingreso: septiembre-2002
Ubicación: Mexico
Mensajes: 142
Antigüedad: 15 años, 3 meses
Puntos: 0
esos temas de JOIN todavia no los tengo muy claro....he leido links pero no le veo diferencia a lo tipico de seleccion de tablas multiples.

creo que lo estoy sacando...con una funcion recursiva que busca cual es el hijo del padre...al estilo del link, pero al llegar al nivel 3, cambia la consulta para preguntar por la tabla de productos....
__________________
www.subflash.com <-----visita
  #6 (permalink)  
Antiguo 17/03/2006, 15:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. estos temas te los podrán aclarar mejor en el foro de "Base de datos" .. Pero el tema de los "Join" es eso mismo: "seleccion de tablas multiples".. sólo que de una forma más óptima en SQL de Mysql (versiones 4.0.x e inferiores por qué no dispone de sub-consultas reales ..).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 07:31.