2017-01-05 6 views
1

У меня есть две таблицы с одинаковым именем столбца. Мне нужно сделать поиск и обновление в одной форме, так как это две таблицы.Обновление двух таблиц из поиска объединения в одной форме

Вот мой код формы поиска и выборки данных (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!"; 
    } 
} 

и вот мой код для обновления таблицы:

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'); 
} 

Если результат поиска значения в table2, то я хотите обновить значение только в таблице2. Если результатом поиска является значение в таблице1, тогда я хочу обновить значение только в таблице1.

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

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

Код для обновления не работает. поэтому, пожалуйста, помогите мне здесь. любая помощь будет оценена по достоинству. Благодаря

+0

Вы просто не можете обновить 2 таблицы сразу. –

+0

любое решение для получения результата n обновления из двух таблиц? в одной форме? – omdx

+0

Просто напишите первый ответ, надейтесь, что он даст идею http://stackoverflow.com/questions/19109666/update-two-tables-in-single-query-in-mysql –

ответ

0

Вы можете использовать affected_rows свойство следующим образом:

$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

Смежные вопросы