私はレシピ Web サイトを構築しています。レシピは 1 つのテーブルに保存され、材料は別のテーブルに保存され、次に 2 つを材料の量と単位にリンクする 3 つ目のテーブルが保存されます。すなわち。レシピテーブル - レシピID、名前、説明など
成分テーブル - IngredientID、名前、説明など
Recipe Ingredients テーブル - RecipeIngredient ID、Recipe ID、Ingredient ID、Quantity、Unit
したがって、1 つのレシピで複数の材料を使用できます。レシピを表示するには、recipe_ingredient テーブルにクエリを実行して、一致するレシピ ID を取得し、そこから対応する成分 ID を取得して、それぞれの成分テーブルにクエリを実行します。
<table id="ingredients_table">
<tr>
<th>Ingredient</th>
<th>Quantity</th>
<th>Unit</th>
<th>Comment</th>
</tr>
<?php
foreach ($ingredient as $value) {
$ingredient_name = get_ingredient_name($value['IngredientID']);
echo '<tr>';
echo '<td>'.$ingredient_name.'</td>';
echo '<td>'.$value['Quantity'].'</td>';
echo '<td>'.$value['Unit'].'</td>';
echo '<td>'.$value['Comments'].'</td>';
echo '</tr>';
echo "\n";
}
?>
</table>
私は次の機能を持っています
function get_ingredients($id) {
//gets the ingredient ids, quanitites, units and comments
$result = mysql_query("SELECT * FROM `recipe ingredients` WHERE RecipeID = $id") or trigger_error(mysql_error());
$array = array();
while($row_ids = mysql_fetch_assoc($result)){
$array[] = $row_ids;
}
return $array;
}
function get_ingredient_name($id) {
//get an ingredient name given its ID
$result = mysql_query("SELECT * FROM `ingredients` WHERE IngredientID = $id") or trigger_error(mysql_error());
$row = mysql_fetch_assoc($result);
$ingredient_name = $row['Ingredient'];
return $ingredient_name;
}
問題は、材料の量または名前を更新するフォームの作成に問題があることです。
私は現在これを持っていますが、動作しません:
function update_ingredients($Ingredient_ID, $id, $RecipeIngredientID, $Ingredient, $Quantity, $Unit, $Comment) {
$ingredient_name = mysql_query("UPDATE `ingredients` SET Ingredient='$Ingredient' WHERE IngredientID='$IngredientID'") or trigger_error(mysql_error());
$ingredient_details = mysql_query("UPDATE `recipe ingredients` SET Quantity='$Quantity', Unit='$Unit', Comment='$Comment' WHERE RecipeIngredientID='$RecipeIngredientID'") or trigger_error(mysql_error());
}
and
if (isset($_POST['RecipeName'])) {
foreach ($ingredient as $value) {
$ingredient_name = get_ingredient_name($value['IngredientID']);
$Ingredient = userData($_POST['Ingredient']);
$Quantity = userData($_POST['Quantity']);
$Unit = userData($_POST['Unit']);
$Comment = userData($_POST['Comment']);
$update_ingredients = update_ingredients($Ingredient_ID, $id, $RecipeIngredientID, $Ingredient, $Quantity, $Unit, $Comment);
echo $update_ingredients;
}
誰でも助けることができます!