簡體   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