计算复选框的数量并更新MySQL

时间:2011-12-21 16:29:49

标签: php mysql

我正在为通过复选框选择的特定条目更新一些MySQL数据,我的代码如下所示:

<?php
    if($_POST['code_approve']){
        for($i=0;$i<count($_POST['checkbox']);$i++){
            $approval_id = $checkbox[$i];
            $sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'";
            $result = mysql_query($sql);
        }
        if($result){
            echo "<meta http-equiv=\"refresh\" content=\"0;URL=table.php\">";
        }
    }
?>

现在我想知道已经选择了多少个复选框,并且对于选中的每个复选框,将25添加到表“成员”行“余额”。

我试过这样:

<?php
    if($_POST['code_approve']){
        for($i=0;$i<count($_POST['checkbox']);$i++){
            $approval_id = $checkbox[$i];
            $approvedamount = count($_POST['checkbox'])
            $approvedx25 = $approvedamount * 25;
            $sql = "UPDATE table SET status='approved', used='processed' WHERE id='$approval_id'";
            $sql2 = "UPDATE members SET balance = + '$approvedx25'";
            $result = mysql_query($sql);
        }
        if($result){
            echo "<meta http-equiv=\"refresh\" content=\"0;URL=table.php\">";
        }
    }
?>

但这根本不起作用,这样做的正确方法是什么?

//编辑

请忽略这个问题,它有效,我只是忘了添加mysql_query。

1 个答案:

答案 0 :(得分:0)

您的更新查询应该是这样的:

$sql2 = "UPDATE members SET balance = balance + ".$approvedx25;

您编写它的方式,使用for子句进行更新,因此每个复选框都执行一次。我不确定你想要那个,因为你已经乘以了复选框的数量。

另外,请注意,您的第二个查询($sql2)未在您的代码中执行。