問題:ドロップダウンメニューを使用して選択したレコードに関連付けられているデータベーステーブルに追加データを挿入する必要があります。ドロップダウンメニューからフィールドに関連付けられたデータベーステーブルにMYSQLデータを挿入
PlayerというMySQLテーブルのテニスプレーヤーの名前をドロップダウンメニューに入力しています。 DBテーブルの行には、一意のID、プレイヤーの姓、名の3つの列が含まれています。ドロップダウンには、姓と名が表示されます。
現在、ユーザーはプレーヤーを選択することができ、送信ボタンを押すと、その姓が他のDBテーブルStagingテーブルに正しく挿入されます。 また、プレイヤーIDとファーストネームも挿入する必要がありますが、正しいIDとファーストネームを取得してステージングテーブルにも挿入することはできません。
他のデータとドロップダウンメニューからのユーザー選択とを関連付ける方法を見つけることができないようです。
コミュニティの誰でも、プレーヤIDとファーストネームを姓と同時にステージングテーブルに挿入できるように、以下のコードに変更を提案できますか?
コミュニティが提供できる援助は非常に高く評価されます。
<?php
$link = mysqli_connect("localhost", "root","","Tennis") or die("Could not connect: ".mysql_error());
if (isset($_POST['submitted'])) {
$surname=$_POST['winner'];
$id = $_POST['ID'];
$firstname = $_POST['firstname'];
// Insert into database what the user selected.
$qresult = mysqli_query($link,"insert into staging (ID,surname,firstname) values ('$id','$surname','$firstname')");
} // end of the main submit condition.
?>
<h1>Tennis Tournament</H1>
<?php
// Fetch player data to populate drop down menu.
$selectSQL = "SELECT * FROM PLAYER ORDER BY SURNAME";
$selectSQL = mysqli_query($link, $selectSQL);
echo '<form method="post" action="Tennis2.php"><br>';
// Drop down menu.
echo '<select name="winner">';
while ($row=mysqli_fetch_array($selectSQL,MYSQLI_BOTH)) {
$id = $row['ID'];
$firstname = $row['FIRSTNAME'];
echo '<option value="'.$row['SURNAME'].'">'.$row['SURNAME'].' '.$row['FIRSTNAME'].'</option>';
}
echo '</select>';
echo '<input type="submit" name="submit" />';
echo '<input type="hidden" name="ID" value="'.$id.'" />';
echo '<input type="hidden" name="submitted" value="1" />';
echo '<input type="hidden" name="firstname" value="'.$firstname.'" />';
echo '</form>';
mysqli_free_result($selectSQL);
?>
を試してみてください。ドロップダウンでは、指定された値として姓ではなくIDを使用します。 –
whileループの外側で、これはあなたが最後のプレイヤーからIDを取得したことを意味します。ループ。 '