【发布时间】:2012-07-31 17:02:54
【问题描述】:
尝试更新 MySQL 表但没有任何更新,我确定我只是没有看到这个小问题,希望得到一些帮助。谢谢
所以它是一个曲棍球池的交易区,如果你想让球员在交易区,那么你只需检查表格中的 CHECKBOX 并提交,它应该将数据库中的值更改为“1”。
表格:
echo "<table border='1'>";
echo "<tr><th>NAME</th> <th>POS</th> <th>BLOCK</th></tr>";
$counter = 1;
while($row = mysql_fetch_array( $result )) {
echo "<tr><td>";
echo "{$row['f_name']}" . " " . "{$row['l_name']}";
echo "</td><td><input name='pl_id[$counter]' type='hidden' value='{$row['pl_id']}'>";
echo "{$row['pos']}";
echo "</td><td><input name='pos[$counter]' type='hidden' value='{$row['pos']}'>";
echo "<input type='checkbox' name='block[$counter]' size='1' value='1'";
if($row['block'] == '1')
{
echo "checked='checked'";
}
echo "></td></tr>";
$counter++;
}
echo "</table>";
提交 PHP 页面:
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("mbbcom1_fantrax") or die(mysql_error());
$i = 1;
while ($i < 26) {
$block = $_POST['block'][$i];
$pl_id = $_POST['pl_id'][$i];
$query = mysql_query("UPDATE 'players'
SET `block` = '$block'
WHERE `players`.`pl_id` = '$pl_id'");
mysql_query($query);
$i++; }
echo mysql_close();
【问题讨论】:
-
在
mysql_close();之前执行echo mysql_error();,这样我们就可以看到MySQL 给出了什么错误。 -
您将数据库用户名/密码放入问题中。我已经把它编辑掉了,但你应该改变它们。
-
也许你应该在最后一个更新语句中删除包含表名(玩家)的引号并改用重音。只是猜测,因为我记得面临同样的麻烦
-
小提示:优化你的while循环。而不是使用 while 和 for 你可以通过只使用 while 来做足够的事情:
while ($i < $formSize && $i < 26){ YOUR STATEMENTS $i++; } -
好的,所以我用所有建议更新了它,但仍然没有运气,我也修改了这里的代码。不敢相信你们的想法有多快。非常感谢
标签: php mysql forms html-table