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

Consulta sql varias columnas (Logica)

Estas en el tema de Consulta sql varias columnas (Logica) en el foro de Mysql en Foros del Web. HOla!!! bueno aca tengo un problema tengo que hacer un menu de comida rapida EJ un producto contiene id (KEY) Nombre Precio Ingredientes (Muchos) EJ: ...
  #1 (permalink)  
Antiguo 29/01/2011, 19:00
Avatar de marieta_lovegood  
Fecha de Ingreso: julio-2009
Ubicación: Cochabamba, Bolivia, Bolivia
Mensajes: 24
Antigüedad: 14 años, 9 meses
Puntos: 0
Consulta sql varias columnas (Logica)

HOla!!!


bueno aca tengo un problema


tengo que hacer un menu de comida rapida


EJ un producto contiene

id (KEY)
Nombre
Precio
Ingredientes (Muchos)


EJ:

1 -> Grill de pollo -> 12.5 -> pollo,pan, lechuga, tomate
2-> GRill de carne _> 13 ->carne,pan, lechuga, tomate

Otra tabla Ingredientes

idIngrediente (KEy)
Nombre

EJ :
1 Pollo
2 lechuga
3 pan
4 tomate


ahora la duda como pongo eso en un query???

ya lo vi de muchas maneras... pero o me sale!!

AYUDA POR FAVORRR
  #2 (permalink)  
Antiguo 29/01/2011, 20:48
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Consulta sql varias columnas (Logica)

No entiendo qué es exactamente lo que quieres hacer. Si ya mencionas los ingredientes en un campo de la tabla PRODUCTO, para qué creas una tabla llamada INGREDIENTES y que sólo cuenta con un campo?
  #3 (permalink)  
Antiguo 30/01/2011, 16:22
Avatar de marieta_lovegood  
Fecha de Ingreso: julio-2009
Ubicación: Cochabamba, Bolivia, Bolivia
Mensajes: 24
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Consulta sql varias columnas (Logica)

creo que no me explique .... el lio es que en la tabla productos quiero eliminar la parte d ingredientes.... es decir Optimizar la tabla.... el suenio afecta....

alguna idea???
  #4 (permalink)  
Antiguo 30/01/2011, 16:30
 
Fecha de Ingreso: agosto-2009
Mensajes: 349
Antigüedad: 14 años, 8 meses
Puntos: 8
Respuesta: Consulta sql varias columnas (Logica)

Se me ocurre que podrias hacer la tabla ingredientes algo asi:

id(KEY)
nombre
id_producto

Entonces cuando quieras mostrar los ingredientes de X producto haces esto:

Código PHP:
Ver original
  1. $query = mysql_query("SELECT nombre FROM ingredientes WHERE id_producto='".$id_producto."' ");
  2.  
  3. while($row = mysql_fetch_array($query)) {
  4.  
  5. echo " {$row['nombre']}<br>";
  6.  
  7. }

Donde la variable $id_producto tiene valor del id del producto que estas mostrando.

Espero que te sirva
  #5 (permalink)  
Antiguo 31/01/2011, 02:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta sql varias columnas (Logica)

idProducto (PRIMARY KEY)
nombreProducto
precioProducto

EJ:

1 -> Grill de pollo -> 12.5
2-> GRill de carne _> 13


Otra tabla Ingredientes
idIngrediente (PRIMARY KEY)
nombreIngrediente
idCategoria(FOREING KEY)

EJ :
1->Pollo->1
2->lechuga->3
3->pan->2
4->tomate->3

tabla categorias
idCategoria, categoria, numOrden
1->carnes->1
2->panes->2
3->verduras->3

etc.

tabla
ingredientesproducto
idIngredienteProducto(Primary KEY)
idProducto(FOREIGN KEY)
idIngrediente(FOREIGN KEY)
1->1->1
2->1->3
3->1->2
4->1->4

Te he puesto el ejemplo del primer producto. Para mostrar los datos tienes que relacionar las tablas y luego sacarlo mediante programación o con alguna función propia de MysQL, como GROUP_CONCAT El problema del orden de esos ingredientes en el producto, tendrá que ver con que quieras o no que aparezcan ordenados según algún criterio. Tal vez con un número de orden de categorización en el producto, como te he puesto, podrías sacarlo fácilmente. Las carnes tendrían 1, en ese campo, el pan 2. Es decir, creo una tabla categorías, que relaciono con productos, y luego a cada categoría le pongo un número de orden. Pero todo eso tiene que ver con las distintas posibilidades de producto.

Etiquetas: query, query-complejo
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 17:01.