iT邦幫忙

0

同時控制 兩個資料表內容

  • 分享至 

  • xImage

我想在資料表A新增一筆資料
A表欄位有
ID 數量
然後在資料表B
同ID的數量會加上A資料表的數量

比如說
我新增一筆資料在A
ID 數量
1 5
資料表B從
ID 數量
1 5
變成
ID 數量
1 10
這樣配PHP該如何製作呢?
一點頭緒都沒有

可以順便推薦本新手看的好書嗎?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
ibatis
iT邦新手 5 級 ‧ 2011-01-05 13:40:26
最佳解答

可以使用 Trigger,新增 A table 時就會去 update B table 了,以下用 Postgresql 資料庫為例

<pre class="c" name="code">
CREATE TABLE A (
  id character(15) NOT NULL primary key,
  quantity integer
);

CREATE TABLE B (
  id character(15) NOT NULL primary key,
  quantity integer
);


CREATE OR REPLACE FUNCTION addOtherTableQuantity() RETURNS trigger AS '
DECLARE
  changed boolean;
BEGIN
  UPDATE B SET quantity = (new.quantity + quantity) where id = new.id; 
  RETURN new;
END
' LANGUAGE plpgsql;


CREATE TRIGGER add_Other_Table_Quantity AFTER INSERT ON A
  FOR EACH ROW EXECUTE PROCEDURE addOtherTableQuantity();

insert into B  VALUES('1',5);
insert into A  VALUES('1',5);

SELECT * FROM B;

當然也可用 PHP,把以下的 SQL 包在同一個 Transaction 即可

<pre class="c" name="code">
insert into A  VALUES('1',5);
UPDATE B SET quantity = (5 + quantity) where id = 1; 
sky1225 iT邦新手 5 級 ‧ 2011-01-10 09:03:47 檢舉
<pre class="c" name="code">  
<meta http-equiv="Content-Type" content="text/html; charset=uft8"/>
  

<form action=in2.php method=POST >  


料號: <input type=text name=Number size=10 maxlength=25>  
入庫量: <input type=text name=stock size=10 maxlength=25>  

<p>  

<center><input type=submit value="送出">  </center>

</form>  

  

  

以上是我輸入資料的頁面

<pre class="c" name="code">  
<meta http-equiv="Content-Type" content="text/html; charset=uft8"/>
  


<?php  

mysql_connect ("localhost","root","Xxxx");  
mysql_query("SET NAMES 'utf8'"); 
mysql_select_db (webdb2);  
mysql_query ("INSERT INTO purchase ( Number,stock)  
VALUES ('$Number','$stock')");  

?>  

這個是傳送的頁面
我應該把PHP程式碼放在?

我要發表回答

立即登入回答