首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入到数据库中,echo显示正确的值,更新会使其成倍增加吗?

问插入到数据库中,echo显示正确的值,更新会使其成倍增加吗?
EN

Stack Overflow用户
提问于 2011-12-22 01:29:56
回答 2查看 108关注 0票数 2

我想要更新我的数据库中的一些条目,基本上我是在计算在上一页上选择的复选框的数量,并将它们乘以25,然后将该值与数据库中的当前值相加。

这是我的代码:

代码语言:javascript
复制
<?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 ?!

这里的错误是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-22 01:40:44

正如我在评论中所说的那样。对于通过$_POST获得的每个复选框,您都会运行此命令。如果使用count来计算复选框,为什么还要使用for循环呢?删除for循环,它将按照您的预期工作。

票数 1
EN

Stack Overflow用户

发布于 2011-12-22 01:45:50

代码中的for循环就是问题所在。我猜你在这里尝试使用上一页中的所有复选框,对于你的代码,你循环所有的复选框,所以如果有4个复选框,for循环将运行4次。所以,请确定你想要做什么。

这是你的代码。

代码语言:javascript
复制
<?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";
    }
}

?>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8593862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档