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
答
你的形式提交类似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
以外的提交按钮,因为您只需要其中的一个。
*必须:* 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/)。 –
谢谢你生病 – Ricky
你正在生成一个带有多个输入的表单,所有的输入都被称为'yeah',具有不同的值。当你发布表单时,较早的表单会被后面的表单覆盖,所以实际提交的唯一一个是最后一个表单。 – andrewsi