MySQL - Como obtener los valores de una consulta para manipularlos en PHP

   
Vista:

Como obtener los valores de una consulta para manipularlos en PHP

Publicado por Humberto (1 intervención) el 05/06/2016 09:46:08
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
 
$db = new Conexion();
$pass = Encrypt($_POST['pass']);
$user = $db->real_escape_string($_POST['user']);
$id_platillo = $db->real_escape_string($_POST['id_platillo']);
$id_alimento = $db->real_escape_string($_POST['id_alimento']);
$cantidad = $db->real_escape_string($_POST['cantidad']);
 
 
 
 
$HTML = '<div class="alert alert-dismissible alert-danger">
  <button type="button" class="close" data-dismiss="alert">x</button>
  <strong>ERROR:</strong> El usuario no existe en el sistema.
  </div>';
 
$sql = $db->query("SELECT id,user,pass FROM users WHERE user='$user' LIMIT 1;");
if($db->rows($sql) > 0){
  $data= $db->recorrer($sql);
  $id_db = $data[0];
  $user_db = $data[1];
  $pass_db = $data[2];
 
if(strtolower($user_db) == strtolower($user)) {
  if($pass_db == $pass){
      $sql2 = $db->query("SELECT id_alimento, proteinas, hidratos, grasas, calorias
                          FROM alimentacion WHERE id_alimento = '$id_alimento' LIMIT 1 ;");
              while ($multi = $db->recorrer($sql2)){
                $i=1;
                $multi[$i] = $db->recorrer($sql2)*$cantidad;  // la funcion recorrer es un fetch_array
                $i++;
              }
               $db->query("INSERT INTO ingredientes (id_platillo, id_ingrediente, cantidad, user)
                           VALUES ('$id_platillo','$id_alimento','$cantidad','$user');");
 
      $sql3 = $db->query("SELECT proteina_total, hidratos_totales, grasas_totales, calorias_totales
                          FROM platillo WHERE id_platillo = '$id_platillo' LIMIT 1 ;");
              $data2 = $db->recorrer($sql3);
              if($data2[0] == 0 && $data2[1] == 0 && $data2[2] == 0 && $data2[3] == 0 ) {
                $db->query("INSERT INTO platillo (proteina_total, hidratos_totales, grasas_totales, calorias_totales)
                            VALUES ('$multi[1]','$multi[2]','$multi[3]','$multi[4]')
                            WHERE id_platillo = '$id_platillo ;");
                            $HTML = 1; // Success , para retornar con exito el pedido desde ajax
                            $db->liberar($sql3);
              }
              else {
                $db->query("UPDATE platillo
                            SET proteina_total = ('$proteina_total' + '$multi[1]') ,hidratos_totales = ('$hidratos_totales' + '$multi[2]'),
                                grasas_totales = ('$grasas_totales' + '$multi[3]'), calorias_totales = ('$calorias_totales' + '$multi[4]')
                            WHERE id_platillo = '$id_platillo';");
                            $HTML = 1;
              }
                  $HTML = 1; // Success , para retornar con exito el pedido desde ajax
                  $db->liberar($sql2);
 
} else {
          $HTML = '<div class="alert alert-dismissible alert-danger">
            <button type="button" class="close" data-dismiss="alert">x</button>
            <strong>ERROR:</strong> La contraseña es incorrecta
            </div>';
} } else {
          $HTML = '<div class="alert alert-dismissible alert-danger">
            <button type="button" class="close" data-dismiss="alert">x</button>
            <strong>ERROR:</strong> El usuario no existe en el sistema.
            </div>';
}
}
 
$db->liberar($sql);
$db->close();
 
echo $HTML;
?>

Pienso que el error esta en las variables VALUE donde inserto en las tablas de platillo , pero no se como obtener el valor de la consulta de la tabla alimentacion, y luego multiplicarla por la cantidad o sumar a la cantidad anterior en el caso del update... alguien puede ayudarme?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder