Обновить две таблицы по нажатию кнопки сразу - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь обновить две таблицы: tblbooking и tblvehicle . При нажатии на кнопку вот мой код;

if(isset($_REQUEST['aeid']))
{       
    $aeid=intval($_GET['aeid']);
    $status="1";
    $availability="1";

    $sql = "UPDATE tblbooking 
            JOIN tblvehicles 
            SET tblbooking.Status=:status,
                tblvehicles.Availability=:availability 
            WHERE tblbooking.id=:aeid";

    $query = $dbh->prepare($sql);
    $query -> bindParam(':status',$status, PDO::PARAM_STR);
    $query -> bindParam(':availability',$availability, PDO::PARAM_STR);
    $query-> bindParam(':aeid',$aeid, PDO::PARAM_STR);
    $query -> execute();

    $msg="Success!";
    }

Я запустил код выше и он обновил таблицу tblbooking.Status , но обновил все таблицы tblvehicles.Availability до 1 в таблице tblvehicles , он должен обновлять только назначенное транспортное средство. Я пытался редактировать его, но я никуда не уйду.

1 Ответ

0 голосов
/ 22 апреля 2020

Я бы предложил сделать два разных обновления:

$sql = "UPDATE tblbooking 
        SET tblbooking.Status=:status
        WHERE tblbooking.id=:aeid";

$query = $dbh->prepare($sql);
$query -> bindParam(':status',$status, PDO::PARAM_STR);
$query -> bindParam(':aeid',$aeid, PDO::PARAM_STR);
$query -> execute();

$sql = "UPDATE tblvehicles 
        SET tblvehicles.Availability=:availability 
        WHERE ...your condition...";

$query = $dbh->prepare($sql);
$query -> bindParam(':availability',$availability, PDO::PARAM_STR);
$query -> bindParam(....your condition ...);
$query -> execute();

В противном случае я предлагаю проверить комментарии или прочитать https://www.mysqltutorial.org/mysql-update-join/

Ваше объединение отсутствует условие «ON», пример:

UPDATE tblbooking JOIN tblvehicles on tblbooking.vehicleid = tblvehicles.id

Также проверьте следующее решение: Как сделать 3 таблицы JOIN в запросе UPDATE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...