更新查询无法在数组中工作

时间:2012-04-13 04:38:46

标签: php mysql sql

这是我的代码:

我想使用数组更新total_values字段。我只是从表中获取数据然后我想更新相同表的字段

// select query to get the value
    for($j=0;$j<count($capacity);$j++)
   {  
     $capaci=$capacity[$j];
    // select query to get the value
     $sql2=mysql_query("SELECT recieved-allocate*plate_quantity as ans from total_values where capacity='$capaci'"); 
     while($fetch=mysql_fetch_array($sql2)) 
     {
      $recieves=$fetch['ans'];
      $sql3="update total_values set recieved='$recieves' where capacity='$capaci' and month='$mon'";
      mysql_query($sql3);
     }
    }

4 个答案:

答案 0 :(得分:1)

如果我明白这就是你想要做的事情:

for($j=0;$j<count($capacity);$j++)
       {  
         $capaci=$capacity[$j];
        // select query to get the value
         $sql2=mysql_query("SELECT recieved-allocate*plate_quantity as ans from total_values where capacity='$capaci'"); 
         while($fetch=mysql_fetch_array($sql2)) 
         {
          $recieves=$fetch['ans'];
          $sql3="update total_values set recieved='$recieves' where capacity='$capaci' and month='$mon'";
          mysql_query(sql3);
         }
        }

正如idstam在评论中所说,学习使用PDO来防止SQL注入

答案 1 :(得分:0)

您的SQL非常混乱,但从功能上来说,问题可能只是您在定义mysql_query($sql3)后需要在该行上调用$sql3。此外,您可能希望在设置echo之前删除$sql3语句。

答案 2 :(得分:0)

如果您没有得到您期望的数学结果,也许您的算术运算符序列中有一个简单的错误......?

$sql2=mysql_query ...

开头的代码行

您目前正在说:

SELECT recieved-allocate*plate_quantity as ans...

......但也许你的意思是说下面的内容?

SELECT (recieved-allocate)*plate_quantity as ans...

或[编辑:这是第三种选择:]

SELECT recieved-(allocate*plate_quantity) as ans...

这些陈述当然会产生不同的数学结果。

这是问题/解决方案吗?

答案 3 :(得分:0)

确保recievedallocateplate_quantity字段都是MySQL表中的数字类型。