Php 从下拉菜单将MYSQL数据插入与字段关联的数据库表

Php 从下拉菜单将MYSQL数据插入与字段关联的数据库表,php,mysql,drop-down-menu,menu,Php,Mysql,Drop Down Menu,Menu,问题:我需要向与使用下拉菜单选择的记录关联的数据库表中插入其他数据。 我正在填充一个下拉菜单,其中有来自MySQL表的网球运动员姓名,名为Player。DB表的行包含3列:唯一ID、玩家姓氏和名字。下拉列表显示姓氏和名字 目前,用户可以选择一个播放器,按下提交按钮后,其姓氏将正确插入另一个DB表,即临时表但我还需要插入玩家ID和名字,但我无法将正确的ID和名字也插入到临时表中。 我似乎无法找到一种方法将其他数据与从下拉菜单中进行的用户选择相关联 社区中的任何人都可以建议对下面的代码进行更改,使玩

问题:我需要向与使用下拉菜单选择的记录关联的数据库表中插入其他数据。

我正在填充一个下拉菜单,其中有来自MySQL表的网球运动员姓名,名为Player。DB表的行包含3列:唯一ID、玩家姓氏和名字。下拉列表显示姓氏和名字

目前,用户可以选择一个播放器,按下提交按钮后,其姓氏将正确插入另一个DB表,即临时表但我还需要插入玩家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);

    ?>

Page.php

在选项值中传递
ID
。不需要隐藏字段

<?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)) {
      echo '<option value="'.$row['ID'].'">'.$row['SURNAME'].' '.$row['FIRSTNAME'].'</option>';
    }
  echo '</select>';

  echo '<input type="submit" name="submit" />';
echo '</form>';

mysqli_free_result($selectSQL);

?>
试试这个代码

<?php 
    $link = mysqli_connect("localhost", "root","","Tennis") or die("Could not connect: ".mysql_error());

        $ID=$_POST['winner'];

       if($ID){

        // Insert into database what the user selected.
        $qresult = mysqli_query($link,"insert into staging (select * from PLAYER where ID = $ID)"); 
  }

?>
<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['ID'].'">'.$row['SURNAME'].' '.$row['FIRSTNAME'].'</option>';
        }
    echo '</select>';

    echo '<input type="submit" name="submit" />';
    echo '</form>';

    mysqli_free_result($selectSQL);

    ?>

网球比赛

确保您在所有表中都有玩家的ID,并使用该ID作为选择器来建立关系。在下拉列表中,使用ID而不是姓氏作为给定值在while循环之外,意味着您只能从循环中最后一个玩家那里获取id。将
$id
放在
标记的
值=“'.$id.”
中,然后无论选择哪个palyer,您都可以从中获得id。虽然欢迎使用解决问题的代码片段,但不鼓励只使用代码和“尝试此”答案。请添加一些解释,为什么这可以解决问题,以及您的更改是什么。
<?php 
    $link = mysqli_connect("localhost", "root","","Tennis") or die("Could not connect: ".mysql_error());

        $ID=$_POST['winner'];

       if($ID){

        // Insert into database what the user selected.
        $qresult = mysqli_query($link,"insert into staging (select * from PLAYER where ID = $ID)"); 
  }

?>
<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['ID'].'">'.$row['SURNAME'].' '.$row['FIRSTNAME'].'</option>';
        }
    echo '</select>';

    echo '<input type="submit" name="submit" />';
    echo '</form>';

    mysqli_free_result($selectSQL);

    ?>