php while循环变量增加数

问题描述:

我有一个while循环从我的数据库收集信息。然后我赞同说出来这样的...php 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 
+1

*必须:* mysql_ *函数将[在PHP 5.5中不推荐使用](http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated)。不建议编写新代码,因为它将来会被删除。相反,无论是[MySQLi](http://php.net/manual/en/book.mysqli.php)还是[PDO](http://php.net/manual/en/book.pdo.php)和[是一个更好的PHP开发人员](http://jason.pureconcepts.net/2012/08/better-php-developer/)。 –

+0

谢谢你生病 – Ricky

+3

你正在生成一个带有多个输入的表单,所有的输入都被称为'yeah',具有不同的值。当你发布表单时,较早的表单会被后面的表单覆盖,所以实际提交的唯一一个是最后一个表单。 – andrewsi

你的形式提交类似yeah=1&yeah=2&yeah=3 ......这相当于下面的PHP:

​​

从这里就可以看出,该变量被覆盖。

尝试使用name="yeah[]",因为这将导致一个数组,如下所示:

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

从而造成Array(1,2,3);

while循环开始前补充一点:$player = array();

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

希望这有助于! :)

另外:

1.更改name="yeah"name=yeah[]只要你想这个输入是一个数组。 2.移动while loop以外的提交按钮,因为您只需要其中的一个。