2017-01-05 7 views
1

同じカラム名を持つ2つのテーブルがあります。私はそれを2つのテーブルのために単一の形式で検索と更新をする必要があります。私はその後、検索結果が表2の値である場合単一形式のユニオン検索から2つのテーブルを更新します。

if(isset($_POST['Save'])) { 
    $Nomor = $mysqli->real_escape_string($_POST['Nomor']); 

    //query database 
    $resultSet = $mysqli->query("SELECT * FROM table1 WHERE Nomor = '$Nomor' union SELECT * FROM table2 WHERE Nomor = '$Nomor'"); 

    $Name = strtoupper($_POST['Name']); 
    $Age = strtoupper($_POST['Age']); 

    //NEED WORKING CODE HERE 
    $sql = $mysqli->query("UPDATE table1 SET Name ='{$Name}', Age ='{$Age}' where Nomor='$Nomor' union UPDATE table2 SET Name ='{$Name}', Age ='{$Age}' where Nomor='$Nomor'"); 
    header('Location: sukses.php'); 
} 

:ここ

は私のコード形式の検索で、(作業looklike)データをフェッチ:

if(isset($_POST['Search'])) { 
    $NoMohon = $mysqli->real_escape_string($_POST['Nomor']); 

    //query database 
    $resultSet = $mysqli->query("SELECT * FROM table1 WHERE Nomor = '$Nomor' union SELECT * FROM table2 WHERE Nomor = '$Nomor'"); 

    if($resultSet->num_rows > 0) { 
     while($rows = $resultSet->fetch_assoc()) { 
      $Nomor = $rows['Nomor']; 
      $Name = $rows['Name']; 
      $Age = $rows['Age']; 
     } 
    } else { 
     $output = "Data Null!"; 
    } 
} 

、ここでテーブルを更新するために、私のコードtable2のみの更新値が必要です。検索結果がtable1の値であれば、私はtable1のみの更新値が必要です。

table1 
+-------+-------------+---------+ 
| Nomor | Name  | Age | 
+-------+-------------+---------+ 
| a1 | Supar  | 25  | 
| a2 | Rambo  | 23  | 
+-------+-------------+---------+ 

table2 
+-------+-------------+---------+ 
| Nomor | Name  | Age | 
+-------+-------------+---------+ 
| b1 | Boneng  | 28  | 
| b2 | Dennyius | 32  | 
+-------+-------------+---------+ 

上記のコードは機能しません。だから私をここで助けてください。どんな助けもありがとう。次のように感謝

+0

。 –

+0

検索結果を2つのテーブルから更新するソリューションはありますか?単一の形式で? – omdx

+0

ちょうど最初の答えを参照して、それがアイデアを与えることを願ってhttp://stackoverflow.com/questions/19109666/update-two-tables-in-single-query-in-mysql –

答えて

0

あなたはaffected_rowsプロパティを使用することができます:あなたは、単に一度に2つのテーブルを更新することはできません

$mysqli->query("UPDATE table2 SET Name ='{$Name}', Age ='{$Age}' WHERE Nomor = '$Nomor'"); 
if (!$mysqli->affected_rows) { // no changes were made 
    $mysqli->query("UPDATE table1 SET Name ='{$Name}', Age ='{$Age}' WHERE Nomor = '$Nomor'"); 
} 

Documentation

関連する問題