请原谅新手问题,但我最近才开始使用PHP。过去一小时我一直坚持这个。
我从我的数据库中的表中提取播放器名称和位置 然后我使用a 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);
}
如果有人能指出我正确的方向,我们将不胜感激。
非常感谢您提前
P.S我意识到我的代码很容易被sql注入。当我开始学习它时,我将解决这个问题
答案 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']