繁体   English   中英

如何在MySQL中的两个表中添加两列?

[英]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'

可能的错误

  1. isset($_POST['num_comp'])? $_POST['num_comp'] :'';

如果POST请求中未发送num_comp,则清空num_comp值。 这将自动导致SET num_comp=(num_comp+)不再是有效的SQL语句。

  1. num_comp=num_comp+'$_POST[num_comp]'

被解析为num_comp=num_comp+'123' 您尝试将字符串添加到数字。

  1. ON DUPLICATE KEY UPDATE

据我所知, ON DUPLICATE KEY UPDATE仅对INSERT语句有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM