-3

这是我的代码:

我想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

4 回答 4

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注入

于 2012-04-13T04:47:29.800 回答
0

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

于 2012-04-13T05:59:03.433 回答
0

您的 SQL 非常混乱,但从功能上讲,问题可能只是您需要mysql_query($sql3)在定义$sql3. 此外,您可能希望echo在 set 之前删除该语句$sql3

于 2012-04-13T04:58:12.870 回答
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...

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

这是问题/解决方案吗?

于 2012-04-13T05:25:39.563 回答