2013-10-20 65 views
0

请原谅这个新手问题,但最近才开始使用PHP。过去一小时我一直坚持这一点。显示数组值的PHP selectmenu错误

从我的db中的表中拉动玩家名称和位置 然后,我为每个循环使用a来提取分配给数组的数据。 在foreach循环中,我有一个变量的选项标签

当我执行脚本时,我期望看到与selectmenu中不同位置相关的玩家名称。但我正在通过图像看到一些奇怪的错误。

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注入非常脆弱。当我开始学习时,我会解决这个问题

+0

我没有看到任何错误这是var_dump()的输出 –

+0

yes是var_dump()的输出 –

+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>'; 

注“选择名称=”团队[]”这将发送给您的所有选择的数组$ _ POST [‘团队’]