这是我的代码:
我想使用数组更新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);
}
}
答案 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)
确保recieved
,allocate
和plate_quantity
字段都是MySQL表中的数字类型。