私は自分のサッカー チームのウェブサイトを作成するのに忙しくしています。私が問題を抱えているのは、一致データを選択して挿入するためのドロップダウン ボックスを備えた Web フォームを作成することです。team_home と team_away を選択するだけで phpmyadmin に一致を追加できるので、リレーショナル データベースが機能しているようです。
次の2つのテーブルがあります。
チーム
- id (pk - ai)
- 名前
マッチ
- id (pk - ai)
- 日にち
- team_home (外部キー -> テーブル team フィールド名)
- team_away (外部キー -> テーブル team フィールド名)
- スコアホーム
- スコアアウェイ
では、データベースに一致を追加できるように、ドロップダウン ボックスを含む Web フォームを作成するにはどうすればよいでしょうか?
アップデート:
ドロップダウン ボックスで動作するフォームを取得しましたが、フォームの送信時に次のエラーが発生します。
エラー: 子行を追加または更新できません: 外部キー制約が失敗しました (
roflz
.matches
, CONSTRAINTmatches_ibfk_1
FOREIGN KEY (team_home
) REFERENCESteams
(name
))送信フォームのコードと insertmatch.php コードを投稿しました
フォームコードを送信
$sql="SELECT id, name FROM Teams";
$result=mysql_query($sql);
$options="";
while ($row=mysql_fetch_array($result)) {
$id=$row["id"];
$name=$row["name"];
$optionshometeam.="<OPTION VALUE=\"$id\">".$name;
$optionsawayteam.="<OPTION VALUE=\"$id\">".$name;
}
?>
<form action="insertmatch.php" method="post">
<SELECT NAME=Teams>
<OPTION VALUE=0>Home Team
<?=$optionshometeam?>
</SELECT>
<SELECT NAME=Teams>
<OPTION VALUE=0>Away team
<?=$optionsawayteam?>
</SELECT>
Score Home team: <input type="text" name="score_home" />
Score Away team: <input type="text" name="score_away" />
Match Date: <input type="text" name="score_away" />
<input type="submit" />
</form>
insertmatch.php コード
mysql_select_db("roflz", $con);
$sql="INSERT INTO matches (team_home, team_away, score_home, score_away, date)
VALUES
('$_POST[team_home]','
$_POST[team_away]','
$_POST[score_home]','
$_POST[score_away]'
$_POST[date]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Match added";
mysql_close($con);
?>
では、このエラーの原因は何ですか?
エラー: 子行を追加または更新できません: 外部キー制約が失敗しました (roflz.matches, CONSTRAINT matches_ibfk_1 FOREIGN KEY (team_home) REFERENCES team (name))