Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda con mi Consulta Mysql

Estas en el tema de Duda con mi Consulta Mysql en el foro de Mysql en Foros del Web. Hola amigos, recurro de nuevo a todos ustedes ya que me estan enseñando y ayudando bastante. Estoy implementando php y mysql en mi sitio web. ...
  #1 (permalink)  
Antiguo 07/06/2007, 11:52
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 10 meses
Puntos: 1
Duda con mi Consulta Mysql

Hola amigos, recurro de nuevo a todos ustedes ya que me estan enseñando y ayudando bastante. Estoy implementando php y mysql en mi sitio web.
Tengo dos Base de datos una llamada Productos y Otra Categorias.
La de productos seria asi

id | Nombre_Producto | Id_Categoria
3 Vodka 5
25 Zapatillas Adidas 8
98 Camaras 15
... ... ...


Tabla Categorias
Id_Categoria | Nombre | PARENT
1 Bebidas 0
2 Vestimentas 0
3 Electronica 0
5 Blancas 1
8 Zapatos 2
15 Hogar 3
... .... ...

En la tabla categorias, la la celda Parent = 0 quiere decir que es Categoria y la Celda parent != 0(distinta de 0)dice que es SUBCATEGORIA y a que Categoria corresponde. Me explico?

Ahora el problema es el siguiente, en la tabla categorias, tambien estan anotadas Categorias y subCategorias que NO tienen productos. YO debo imprimir un listado con las categorias y subcategorias (que si tienen productos) seria algo asi:

Vestimentas
-- Zapatos

Bebidas
-- Blancas

etc.

Ahora bien, lo que intente hacer en mi consulta mysql fue primero buscar las categorias que tienen productos y obtener el id de la categoria,

Código PHP:
select DISTINCT categorias.Id_Categoria from categoriasproductos where (categorias.Id_Categoria productos.Id_Categoria
Pero entonces solo obtengo la informacion de las "subcategorias" ya que las Categorias (Parent = 0) no estan anotadas en la Tabla Productos, por consiguiente solo esta sentencia me devolveria:

--Zapatos

-- Blancas

y digamos que tengo la informacion por la mitad. Tienen alguna idea para resolver mi problema?? Nose que mas agregarle a la sentencia SQL estoy intentando pero no me sale.

Desde Ya muchas Gracias
Gabriel
Argentina
  #2 (permalink)  
Antiguo 07/06/2007, 12:21
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 4 meses
Puntos: 5
Re: Duda con mi Consulta Mysql

Holas gabyrsh, Lo que andas buscando, es no mas algo complicadito, y no creo que se pueda hacer solo con SQL, necesariamente necesitaras incluir programacion del lenguaje que estes usando, lo que andas queriendo hacer es una estructura de arbol, recorrer las ramas desde la raiz hasta las hojas que llegarian a ser tu subcategorias, ahora primero habria que ver si el arbol que quieres puede tener N niveles eso quiere decir algo asi:
Código:
Raiz
|--Ropa (categoria)
|----Invierno (sub-categoria)
|------Lana (sub-categoria)
|--------Juvenil (sub-categoria)
|--------Niños (sub-categoria)
|------Algodon (sub-categoria)
|----Verano (sub-categoria)
|
|--Zapatos (categoria)
|----Mujer (sub-categoria)
|------Botas
|------Zapatillas
|----Varon
....
no se si tu problema es solo dos niveles categoria y subcategoria sin mas niveles de profundidad, y ademas quienes son los que pueden tener asociados productos las subcategorias de ultimo nivel o tambien pueden tener las de niveles superiores, si fuera dos niveles como planteas en tu problema, tendrias que recuperar primero las subcategorias luego para cada resultado de tu subcategoria deberias recuperar su categoria y los productos que estan dentro de ella.
ahora si el caso es de N niveles entonces lo mejor seria pensar en crear una funcion recursiva para generar el arbol que deseas mostrar, uyy espero no haberme extendido demasiado, espero te sirva, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 07/06/2007, 13:02
 
Fecha de Ingreso: mayo-2005
Mensajes: 257
Antigüedad: 18 años, 10 meses
Puntos: 1
Re: Duda con mi Consulta Mysql

Gracias por la respuesta, estoy usando php, en mi caso son 2 Niveles, ahora bien, si fueran N niveles, tendrias alguna funcion Recursiva de ejemplo con php o algun lenguaje?

Desde ya muchisimas gracias por tu tiempo.
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 19:19.