3種類のフィールドを持つフォームがあります:
- (2) 「tblCocktail」に送信するテキスト フィールド
- (4) 「tblIngredient」からの値が取り込まれたフィールドを選択し、「tblRecipe」に送信します
- (4) 「tblRecipe」に送信する、事前設定されたオプションを持つフィールドを選択します
フォーム コード (「selectingred」と「quantity」の各ドロップダウンが 4 つずつあります):
<form method="POST" action="addcocktail.php" >
Cocktail Name: <input type="text" name="cocktailname" />
How To: <input type="text" name="howto" />
<br>
<select id="selectingred1" name="selectingred1">
<?php
$sql = "SELECT ingredientID, name FROM tblIngredient ".
"ORDER BY name";
$rs = mysql_query($sql);
while($row = mysql_fetch_array($rs))
{
echo "<option value=\"".$row['ingredientID']."\">".$row['name']."</option>\n ";
}
?>
</select>
<select id="quantity1" name="quantity1">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<br>
<input type="submit" value="add" />
</form>
addcocktail.php:
<?php include("databasecon.php"); ?>
<?php
mysql_select_db("mwheywood", $con);
//insert cocktail details
$sql="INSERT INTO tblCocktail (name, howto)
VALUES
('$_POST[cocktailname]','$_POST[howto]')";
$sql2="INSERT INTO tblRecipe (ingredientID, quantity)
VALUES
('$_POST[selectingred1]','$_POST[quantity1]'),
('$_POST[selectingred2]','$_POST[quantity2]'),
('$_POST[selectingred3]','$_POST[quantity3]'),
('$_POST[selectingred4]','$_POST[quantity4]')";
if (!mysql_query($sql,$con))
{
die('Error: you fail at life' . mysql_error());
}
echo "cocktail added";
if (!mysql_query($sql2,$con))
{
die('Error: you fail at life' . mysql_error());
}
echo "ingredients added";
mysql_close($con);
?>
これは現在、「selectingred4」と「quantity4」の値を「tblRecipe」に追加するだけです。テキスト ボックスの 2 つの挿入と、最初の 3 つの選択ボックス エントリは無視されます。
私のもう1つの問題は、フォームのphpから「ingredientID」と「name」を取得していることですが、フォームを送信すると、「ingredientID」が「tblRecipe」にも送信されません。
-何か助けていただければ幸いです-マット