[英]How to add two columns from two tables in MySQL?
我有3个表:控制器,allot_compnts和prev_allot_compnts,3个表具有相同的字段,当我单击“提交”按钮时,allot_compnts中的值被复制到prev_allot_compnts并从allot_compnts中删除
代码:
$id=@$_POST['submit']
$type = isset($_POST['comp_type'])? $_POST['comp_type'] : '';
$name = isset($_POST['comp_name'])? $_POST['comp_name'] :'';
$comp = isset($_POST['num_comp'])? $_POST['num_comp'] :'';
//Insert
$sql1="INSERT INTO prev_alloted_comp(id,comp_type,comp_name,num_comp)
SELECT comp_type,comp_name,num_comp FROM alloted_comp WHERE id='$id'" ;
//Delete
$sql2="delete from alloted_comp where id='$id'";
//Here i'm trying to update controller table
if($type === 'Controller'){
$sql3= "UPDATE comp_controller SET
num_comp=(num_comp+$_POST[num_comp]) WHERE comp_name ='$name'
ON DUPLICATE KEY UPDATE num_comp=num_comp+'$_POST[num_comp]'";
}
我正在尝试基于$ _POST [num_comp]更新控制器表中的num_comp,但是控制器表中的值未更新
我是新手,请有人帮我怎么做
更新:我刚刚将代码更新为
$id=@$_POST['submit']
$type = isset($_POST['comp_type']);
$name = isset($_POST['comp_name']);
$comp = isset($_POST['num_comp']);
//Insert
$sql1="INSERT INTO prev_alloted_comp(id,comp_type,comp_name,num_comp)
SELECT comp_type,comp_name,num_comp FROM alloted_comp WHERE id='$id'" ;
//Delete
$sql2="delete from alloted_comp where id='$id'";
//Here i'm trying to update controller table
if($type === 'Controller'){
$sql3= "UPDATE comp_controller SET
num_comp=(num_comp+$_POST[num_comp]) WHERE comp_name ='$name'";
}
窗台不工作
$_POST['num_comp'] = 123
$sql
变量被解析为UPDATE comp_controller SET num_comp=(num_comp+123) WHERE comp_name ='Some name' ON DUPLICATE KEY UPDATE num_comp=num_comp+'123'
可能的错误
isset($_POST['num_comp'])? $_POST['num_comp'] :'';
如果POST请求中未发送num_comp,则清空num_comp值。 这将自动导致SET num_comp=(num_comp+)
不再是有效的SQL语句。
num_comp=num_comp+'$_POST[num_comp]'
被解析为num_comp=num_comp+'123'
。 您尝试将字符串添加到数字。
ON DUPLICATE KEY UPDATE
据我所知, ON DUPLICATE KEY UPDATE
仅对INSERT语句有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.