Foros del Web » Programando para Internet » PHP »

Como hacer que un mismo dato se muestre en dos categorias

Estas en el tema de Como hacer que un mismo dato se muestre en dos categorias en el foro de PHP en Foros del Web. Hola, me gustaría que alguien me echara un cable, pues no se por donde empezar, Tengo unos productos cada uno en una categoría, me gustaría ...
  #1 (permalink)  
Antiguo 05/01/2014, 11:29
 
Fecha de Ingreso: julio-2013
Ubicación: Mislata-Valencia
Mensajes: 25
Antigüedad: 11 años, 4 meses
Puntos: 1
Como hacer que un mismo dato se muestre en dos categorias

Hola, me gustaría que alguien me echara un cable, pues no se por donde empezar,
Tengo unos productos cada uno en una categoría, me gustaría que un mismo producto pudiera aparecer en por ejempolo dos categorías.
¿Tengo que crear alguna tabla nueva en phpmyadmin para que me funcione?
o se pueden relacionar de otra manera.
Agradecería alguna ayuda.
  #2 (permalink)  
Antiguo 05/01/2014, 12:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como hacer que un mismo dato se muestre en dos categorias

Cita:
Tengo unos productos cada uno en una categoría, me gustaría que un mismo producto pudiera aparecer en por ejempolo dos categorías.
Este es un tema más de bases de datos que de PHP, pero te doy un anticipo: Se necesita si o si una tabla adicional.
Lo que preguntas es lo que se denomina "relacion de cardinalidad N:N entre dos tablas", y representa que un registro de la tabla A (digamos Productos) se encuentra relacionado a uno o más de la tabla B (Categorías), y a su vez cada registro de la tabla B está relacionado con uno o más de la tabla A.
En BBDD este tipo de relaciones obligatoriamente crea una tabla nueva donde la PK de cada una de las tablas es uno de los atributos de la tercera, y el par de claves determinan la PK de esta nueva tabla (clave compuesta).
Es un tema que puedes ver en cualquier manual o tutorial de bases de datos relacionales.
En esencia sería:
Cita:
Productos(producto_id, nombre, ...)
Categoría(categoria_id, descripcion, ...)
producto_categoria(producto_id, categoria_id)
Los subrayados, por convención, indican cuales son las PK de cada tabla.

En este caso, una consulta que devuelva la lista de productos con sus categorías sería mas o menos:
Código SQL:
Ver original
  1. SELECT P.producto_id, P.nombre, C.categoria_id, C.descripcion
  2. FROM productos P INNER JOIN categoría C ON P.producto_id = C.categoria_id
  3. WHERE (condiciones)
El resultado sería una tabla que repite el producto por cada categoria distinta que tenga el mismo (esto es inevitable), por lo que la visualización luego se resuelve a nivel PHP.

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/01/2014, 12:52
 
Fecha de Ingreso: julio-2013
Ubicación: Mislata-Valencia
Mensajes: 25
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Como hacer que un mismo dato se muestre en dos categorias

Muchas gracias por tu aclaración, investigaré mas a partir de aquí.

Etiquetas: categorias, dato, tabla
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 22:11.