2017-07-21 10 views
1

問題:ドロップダウンメニューを使用して選択したレコードに関連付けられているデータベーステーブルに追加データを挿入する必要があります。ドロップダウンメニューからフィールドに関連付けられたデータベーステーブルに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); 

    ?> 
+0

を試してみてください。ドロップダウンでは、指定された値として姓ではなくIDを使用します。 –

+0

whileループの外側で、これはあなたが最後のプレイヤーからIDを取得したことを意味します。ループ。 '

答えて

0

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); 

?> 

Tennis2.php

IDドロップダウンから渡されたキャッチし、姓、名のように、それが関連のデータを取得し、ステージング表に挿入します。

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

if (isset($_POST['submit'])) { 

    $id_selected = $_POST['winner']; 

    $selectSQLquery = "SELECT * FROM PLAYER WHERE ID = $id_selected LIMIT 0,1"; 
    $selectSQL = mysqli_query($link, $selectSQLquery); 

    $row = mysqli_fetch_array($selectSQL,MYSQLI_BOTH); 
    $surname = $row['SURNAME']; 
    $firstname = $row['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. 
?> 
0

あなたはすべてのテーブルにプレイヤーのIDを持っているとの関係を作るためにセレクタとして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); 

    ?> 
+1

問題を解決するコードスニペットは歓迎ですが、 「これを試してください」という回答はお勧めできません。いくつかの説明を追加してください。なぜこの問題が解決され、あなたの変更が何であるかをご記入ください。 – user5226582

関連する問題