php while循环变量增加数字

时间:2013-07-10 17:33:44

标签: 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>'; 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>';

当我发布我的$num变量时,它总是显示为最后一个可能的数字。因此,如果该查询中有7行,那么该数字将为7.我希望能够单击提交按钮并在提交表单中获取隐藏值。

Player 
mike    hidden number = 1
chris   hidden number = 2
jim     hidden number = 3
dan     hidden number = 4

2 个答案:

答案 0 :(得分:1)

您的表单正在提交类似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;

导致Array(1,2,3);

答案 1 :(得分:1)

在while循环开始之前添加:$player = array();

你应该总是在循环之前定义数组:)

希望这有帮助! :)

同时

1.将name="yeah"更改为name=yeah[],因为您希望此输入为数组。 2.移动while loop之外的提交按钮,因为您只需要其中一个。