0

请原谅新手的问题,但我最近才开始使用 PHP。在过去的一个小时里,我一直坚持这一点。

我从数据库中的表中提取玩家姓名和位置,然后使用 for each 循环来提取分配给数组的数据。在 foreach 循环中,我有一个带有变量的选项标签

当我执行脚本时,我希望看到与选择菜单中不同位置相关的玩家姓名。但是正如您从图像中看到的那样,我遇到了一些奇怪的错误。

在此处输入图像描述

我的代码如下:

include 'connect.php';
$position = array("THP", "HKR", "LHP", "LK4", "LK5", "FL6", "FL7", "NR8", "SH", "FH");
var_dump($position);
$size = sizeof($position);
    for($i=0; $size > $i; $i++)
    {
        $result = mysql_query("SELECT `player_id`, `name`, `surname`, `position` 
                    FROM `player_info` 
                    WHERE `position` = '$position[$i]'") 
                    or die(mysql_error());
var_dump($position[$i]);
              while($row = mysql_fetch_array($result))
              {
                  $playername =  $row['name'];
                  $player_lastname = $row['surname'];
                  $player_position = $row['position'];    
              }
    var_dump($playername);
echo'<form name="teamselect" method="post">';
     print $position[$i];
    echo'<select name="team">';
        foreach($playername as $name)
        {   
            echo '<option value="'.$name.'">'.$name.'</option>';            
        }
        echo'</select>';
        echo'</form>';
unset($name);
    }

如果有人能指出我正确的方向,将不胜感激。

非常感谢您提前

PS 我意识到我的代码很容易受到 sql 注入的影响。当我开始学习它时,我会解决这个问题

4

1 回答 1

1

我不明白你为什么要重复两次相同的数据。试试这个:

include 'connect.php';
$position = array("THP", "HKR", "LHP", "LK4", "LK5", "FL6", "FL7", "NR8", "SH", "FH");
var_dump($position);
$size = sizeof($position);
echo'<form name="teamselect" method="post">';
    for($i=0; $size > $i; $i++)
    {
        echo'<select name="team[]">';
        $result = mysql_query("SELECT `player_id`, `name`, `surname`, `position` 
                    FROM `player_info` 
                    WHERE `position` = '$position[$i]'") 
                    or die(mysql_error());
        while($row = mysql_fetch_array($result))
        {
            echo '<option value="'.$row['name'].'">'.$row['name'].'</option>';
            /*$playername =  $row['name'];
              $player_lastname = $row['surname'];
              $player_position = $row['position'];  */  
        }
        echo'</select>';
    }
echo'</form>';

注意 "select name="team[]"。这会将所有选择作为数组发送给 $_POST['team']

于 2013-10-20T07:53:08.363 回答