Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2016, 00:42
ArashiTensei
 
Fecha de Ingreso: junio-2011
Mensajes: 19
Antigüedad: 12 años, 10 meses
Puntos: 0
Sumar filas de un campo relacionando 3 tablas

Hola, eh estado batallando con el siguient eproblema, espero alguien pueda ayudarme

tengo 3 tablas:
Platillo , alimentos e ingredientes.

alimentos contiene las propiedades de varios alimentos, simplifiquemos a solo proteinas y calorias.

platillo contiene el total de las proteinas y calorias que sumen entre los difrentes alimentos que contine dicho platillo.

Ingredientes lo utilizo como metodo para que el usuario agrege mas ingredientes a un platillo, esta tabla contiene el (id_del_alimento) y tambien el (Id_del_platillo) aparte de ot5ro campo llamado cantidad, que lo que hace es asignar cuantas veces debe multiplicar el alimento.
ej: si en la tabla alimentos tnego en el id=3 la fila de platano, con 15 de proteina y 150 de calorias, cantidad se refiere a cuantos platanos debe agregar al platillo.

Esa es la logica que quiero manejar, no se si sea la mas optima , es lo que se me ocurrió.

El problema es que no logro relacionar las tablas, y tampoco puedo sumar las filas que necesito, porque dentro de cada tabla existen registros de diferentes usuarios.

lo que tengo en mente es de cada alimento que agrega el usuario, obtener las propiedades de dicho alimento y multiplicarlas si es el caso, despues insertar estos resultados en la tabla platillo si es el primer ingrediente del platillo e ir haciendo update cada que el usuario agrega mas alimentos.

este es el codigo en PHP de lo que menciono , pero en la tabla platillo no me esta dando las sumas de los ingredientes, se mantiene en 0

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
Código MySQL:
Ver original
  1. SELECT id,user,pass FROM users WHERE user='$user' LIMIT 1;

Código MySQL:
Ver original
  1. INSERT INTO ingredientes (id_platillo, id_ingrediente, cantidad, user)
  2.                            VALUES ('$id_platillo','$id_alimento','$cantidad','$user');

Código MySQL:
Ver original
  1. SELECT proteina_total, hidratos_totales, grasas_totales, calorias_totales
  2.                           FROM platillo WHERE id_platillo = '$id_platillo' LIMIT 1 ;

Código MySQL:
Ver original
  1. INSERT INTO platillo (proteina_total, hidratos_totales, grasas_totales, calorias_totales)
  2.                             VALUES ('$multi[1]','$multi[2]','$multi[3]','$multi[4]')
  3.                             WHERE id_platillo = '$id_platillo ;

Código MySQL:
Ver original
  1. UPDATE platillo
  2.                             SET proteina_total = ('$proteina_total' + '$multi[1]') ,hidratos_totales = ('$hidratos_totales' + '$multi[2]'),
  3.                                 grasas_totales = ('$grasas_totales' + '$multi[3]'), calorias_totales = ('$calorias_totales' + '$multi[4]')
  4.                             WHERE id_platillo = '$id_platillo';


Alguien tiene alguna sugerencia?

Última edición por gnzsoloyo; 05/06/2016 a las 07:44