php while循环变量递增数

php while循环变量递增数,php,while-loop,Php,While Loop,我有一个while循环,它从数据库收集信息。然后我像这样回应 $num = 1; $i=0; $drop = 'yes'; echo '<form id="drop_form" method="post" action="here.php">'; while( $row = mysql_fetch_assoc($query)) { $player[] = $row['player']; echo '<tr class="rows"><td>'

我有一个while循环,它从数据库收集信息。然后我像这样回应

$num = 1;
$i=0;
$drop = 'yes';
echo '<form id="drop_form" method="post" action="here.php">';

while( $row = mysql_fetch_assoc($query)) {

   $player[] = $row['player'];

   echo '<tr class="rows"><td>'; echo'<input type="hidden"
   name="yeah" value="'.$num.'"/>
   <input name="submit" type="submit" value="submit"/>';

   echo $player[$i].'</td></tr>'; 

   $num++;                         
   $i++;
}
echo '</table>';
echo '</form>';

您的表单正在提交类似
yeah=1&yeah=2&yeah=3
。。。这相当于以下PHP:

$_POST['yeah'] = 1;
$_POST['yeah'] = 2;
$_POST['yeah'] = 3;
由此可以看出变量正在被覆盖

尝试使用
name=“yeah[]”
,因为这将生成一个数组,如下所示:

$_POST['yeah'][] = 1;
$_POST['yeah'][] = 2;
$_POST['yeah'][] = 3;

产生
数组(1,2,3)

在while循环开始之前添加以下内容:
$player=array()

应始终在循环之前定义数组:)

希望这有帮助!:)

另外:

1.将
name=“yeah”
更改为
name=yeah[]
,因为您希望此输入是一个数组。
2.将提交按钮移到
while循环
之外,因为您应该只需要其中一个。

必须:mysql*
函数将被禁用。不建议编写新代码,因为它将在将来被删除。您正在生成一个包含多个输入的表单,这些输入都称为
,具有不同的值。当您发布表单时,较早的表单将被较晚的表单覆盖,因此实际提交的只有最后一个。您的
{
}
不匹配。好的,谢谢您。。。我应该更改每个输入的名称吗?@Ricky:要么更改,要么使用
name=“yeah[]”
。这将把所有的值作为一个数组发布(
$\u post['yeah']
将是一个数组)。
$_POST['yeah'][] = 1;
$_POST['yeah'][] = 2;
$_POST['yeah'][] = 3;