Foros del Web » Programando para Internet » PHP »

relación entre tablas e impresión

Estas en el tema de relación entre tablas e impresión en el foro de PHP en Foros del Web. Hola comunidad, tengo 2 tablas: productos: id_producto id_marca nombre .... marcas: id_marca nombre La siguiente consulta imprime un producto determinado: Código PHP: $id_producto  =  htmlentities ...
  #1 (permalink)  
Antiguo 12/09/2012, 15:59
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta relación entre tablas e impresión

Hola comunidad,

tengo 2 tablas:

productos:
id_producto
id_marca
nombre
....

marcas:
id_marca
nombre

La siguiente consulta imprime un producto determinado:

Código PHP:
$id_producto htmlentities($_GET['producto']); 

$consulta mysql_query("SELECT * FROM productos WHERE id_producto = '$id_producto'"); 
$resultado mysql_fetch_array($consulta));

echo 
$resultado['nombre'];
echo 
$resultado['descripcion'];
echo 
etc...;
echo 
$resultado['id_marca']; 

Cuando hago la impresión me imprime el id de marca y no el nombre que es lo que necesito.

Cómo debería hacer la relación en la consulta para que me imprima el nombre de la marca relacionada al producto?.

agrego un FROM productos, marcas?, ó hago otra consulta con otra validación?.

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 12/09/2012, 16:09
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: relación entre tablas e impresión

tienes que hacer un join
Código MySQL:
Ver original
  1. SELECT* FROM productos join marcas where id_producto = 1 and productos.id_marca = marcas.id

y como tienes campos redundantes usa alias para distingirlos.
  #3 (permalink)  
Antiguo 12/09/2012, 16:25
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: relación entre tablas e impresión

Cita:
Iniciado por memoadian Ver Mensaje
tienes que hacer un join
Código MySQL:
Ver original
  1. SELECT* FROM productos join marcas where id_producto = 1 and productos.id_marca = marcas.id

y como tienes campos redundantes usa alias para distingirlos.
Genial!. Anduvo de maravillas. Gracias.
  #4 (permalink)  
Antiguo 14/09/2012, 12:14
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta Respuesta: relación entre tablas e impresión

Disculpen si resurjo este tema comunidad...

Ahora les consulto cómo sería la query solo para mostrar todos los productos con sus marcas pero sin validar con un GET?, o sea mostrar directamente...

Yo lo hice así pero me muestra los registros duplidados:

Código PHP:
$consulta=mysql_query("SELECT * FROM productos JOIN marcas"); 
Gracias nuevamente...
  #5 (permalink)  
Antiguo 14/09/2012, 12:45
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: relación entre tablas e impresión

Cita:
Iniciado por elsolodigno Ver Mensaje
Disculpen si resurjo este tema comunidad...

Ahora les consulto cómo sería la query solo para mostrar todos los productos con sus marcas pero sin validar con un GET?, o sea mostrar directamente...

Yo lo hice así pero me muestra los registros duplidados:

Código PHP:
$consulta=mysql_query("SELECT * FROM productos JOIN marcas"); 
Gracias nuevamente...
ya lo puede hacer de la siguiente manera:

Código PHP:
mysql_query("SELECT * FROM productos, marcas WHERE productos.id_marca = et_marcas.id"); 
muchas gracias igual!

Etiquetas: mysql, tabla, tablas
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 23:17.