2011-12-15 14 views
0

同じデータベースの2つの異なるテーブルから同じ列の値を合計して変数に格納するPHPコードがあります。以下のコードは言及されている:動的値を持つ変数を使用してSQLテーブルを更新する方法

$sql = 'SELECT 
     (SELECT SUM(time_spent) 
     FROM '.TICKET_RESPONSE_TABLE.' 
     WHERE ticket_id='.db_input($id).') 
     +(SELECT SUM(time_spent) 
      FROM '.TICKET_NOTE_TABLE.' 
      WHERE ticket_id='.db_input($id).') 
    AS total_time'; 
$result = db_query($sql); 
$cursor = mysql_fetch_row($result); 
$total_time = $cursor[0]; 

を今、私は、変数$ TOTAL_TIMEに格納された値で、同じデータベースの別のテーブルの列を更新することですたいです。親切にも同じことを私に助けてください。

あなたが副選択することができます

答えて

0

UPDATE table1 t1 
SET t1.val1 = 
(SELECT val FROM table2 t2 WHERE t2.id = t1.t2_id) 
WHERE t1.val1 = ''; 
0

なぜ $ sqlを= "FIELD_NAME = $ TOTAL_TIME他のテーブルセット。INSERT INTO" を。 $ result = db_query($ sql);

2

変数の代わりに直接更新を行うことができます。このような

$sql = 'UPDATE *tablename* 
     SET *columname* = 
     (SELECT SUM(time_spent) 
     FROM '.TICKET_RESPONSE_TABLE.' 
     WHERE ticket_id='.db_input($id).') 
     +(SELECT SUM(time_spent) 
      FROM '.TICKET_NOTE_TABLE.' 
      WHERE ticket_id='.db_input($id).')'; 
$result = db_query($sql); 

やあとがき:のみ(更新+ 1つのクエリで選択)最初の1のための

$sql = 'SELECT 
     (SELECT SUM(time_spent) 
     FROM '.TICKET_RESPONSE_TABLE.' 
     WHERE ticket_id='.db_input($id).') 
     +(SELECT SUM(time_spent) 
      FROM '.TICKET_NOTE_TABLE.' 
      WHERE ticket_id='.db_input($id).') 
    AS total_time'; 
$result = db_query($sql); 
$cursor = mysql_fetch_row($result); 
$total_time = $cursor[0]; 
$sql = 'SUPDATE *tablename* 
      SET *columname* = ' . $total_time 
$result = db_query($sql); 
+0

+1、私はここに表示されていないPHPに値を戻し、それを更新する必要があります別のクエリ。 –

関連する問題