以前の問題/質問の助けを借りて、与えられたスクリプトが「間違った」数値/値を返すことに気付きました (それでも php/mysql エラーは発生しません)。値は次のとおりです。
成分 #1: 20.216 カロリー
成分 #2: 134.4564 カロリー
スクリプトは154.67を返すはずですが、代わりに91.35を返します。
コード:
<?php
//The Recipe selected
$recipe_id = $_POST['recipe_id'];
/*****************************************
* Total CALORIES in this recipe
*****************************************/
echo '<h4>Total calories in this recipe:</h4>';
$result = mysql_query(
"SELECT SUM(ingredient_calories), ingredient_amount
FROM recipe_ingredients
INNER JOIN ingredients USING (ingredient_id)
WHERE recipe_id = $recipe_id");
while ($row = mysql_fetch_array($result)) {
$recipe_calories = (
$row['SUM(ingredient_calories)']
* $row['ingredient_amount']);
}
echo number_format($recipe_calories, 2);
mysql_free_result($result);
?>
食材テーブルには、各食材のデフォルト値とサービングサイズが保存されています。
レシピテーブルは、recipe_id、およびクエリに関係のないその他のデータを格納/設定します)
Recipe_ingredientsテーブルは、レシピ内の材料をマッピングし、レシピで使用される量を保存します。
クエリの問題だと思いますが、耳の後ろが濡れすぎて問題を特定できませんでした。どんな助けでも大歓迎です:)
更新:要求されたテーブルデータは次のとおりです
ingredients
-----------
ingredient_id
ingredient_name
ingredient_calories
recipes
-------
recipe_id
recipe_name
recipe_ingredients
------------------
recipe_id (fk)
ingredient_id (fk)
ingredient_amount