显示数组值的PHP selectmenu错误

时间:2013-10-20 07:37:48

标签: php mysql

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

我从我的数据库中的表中提取播放器名称和位置 然后我使用a for each循环来提取分配给数组的数据。 在foreach循环内部,我有一个带变量

的选项标签

当我执行脚本时,我希望看到播放器名与选择菜单中的不同位置相关。但我得到一些奇怪的错误,你可以看到图像。

enter image description here

我的代码如下:

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

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

非常感谢您提前

P.S我意识到我的代码很容易被sql注入。当我开始学习它时,我将解决这个问题

1 个答案:

答案 0 :(得分: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']