我想要更新我的数据库中的一些条目,基本上我是在计算在上一页上选择的复选框的数量,并将它们乘以25,然后将该值与数据库中的当前值相加。
这是我的代码:
<?php
if($_POST['code_approve'])
{
for($i=0;$i<count($_POST['checkbox']);$i++)
{
$approval_id = $checkbox[$i];
$checkboxCount = count($_POST['checkbox']);
$countx25 = $checkboxCount * 25;
$sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'";
$sql2 = "UPDATE members SET balance = balance+'$countx25'";
$result2 = mysql_query($sql2);
$result = mysql_query($sql);
}
if($result)
{
echo "$countx25";
}
}
?>似乎由于某种原因,在将其插入MySQL之前,它会将$countx25与复选框的数量相乘。不过,这个if($result){echo "$countx25";}}总是向我显示正确的值。
如果我选择1,它打印25,2打印50,3打印75,依此类推,但对于MySQL部分,如果我选择1,它将当前值添加25,2将添加100,3将添加225 ?!
这里的错误是什么?
发布于 2011-12-22 01:40:44
正如我在评论中所说的那样。对于通过$_POST获得的每个复选框,您都会运行此命令。如果使用count来计算复选框,为什么还要使用for循环呢?删除for循环,它将按照您的预期工作。
发布于 2011-12-22 01:45:50
代码中的for循环就是问题所在。我猜你在这里尝试使用上一页中的所有复选框,对于你的代码,你循环所有的复选框,所以如果有4个复选框,for循环将运行4次。所以,请确定你想要做什么。
这是你的代码。
<?php
if($_POST['code_approve'])
{
for($i=0;$i<count($_POST['checkbox']);$i++)
{
$approval_id = $checkbox[$i];
$checkboxCount = count($_POST['checkbox']);
$countx25 = $checkboxCount * 25;
$sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'";
$sql2 = "UPDATE members SET balance = balance+'$countx25'";
$result2 = mysql_query($sql2);
$result = mysql_query($sql);
}
if($result)
{
echo "$countx25";
}
}?>
https://stackoverflow.com/questions/8593862
复制相似问题