У меня две таблицы: tblroom и tblrent. Как я могу обновить поле состояния стола после вставки в таблицу аренды. Вставка работает нормально, но обновление не работает. Вот мои коды.
if($_POST) {
$validator = array('success' => false, 'messages' => array());
$cusName = $_POST['cusName'];
$room_num = $_POST['room_num'];
$strDate = $_POST['strDate'];
$book = $_POST['book'];
$fctStatus = $_POST['fctStatus'];
//insert values to database
$sql = "INSERT INTO tblrent (name, room, start_date, booking, status)
VALUES ('$cusName', '$room_num', '$strDate', '$book', '$fctStatus')";
$query = $connect->query($sql);
//update the room status
$update = "UPDATE tblrooms SET status ='$fctStatus' WHERE rNumber=$room_num";
$query2 = $connect->query($update);
if($query === TRUE) {
$validator['success'] = true;
$validator['messages'] = "Successfully Added";
} else {
$validator['success'] = false;
$validator['messages'] = "Error while adding the Customer information";
}
// close the database connection
$connect->close();
echo json_encode($validator);
}
Во-первых, вы должны попытаться показать сообщение об ошибке, вызывающее вашу проблему. Также стоит $room_num
целое число? если это не так, вы можете захотеть обернуть его в кавычки в своем заявлении об обновлении. $update = "UPDATE tblrooms SET status ='$fctStatus' WHERE rNumber='$room_num'";
Примечание. Вы не должны передавать значения непосредственно из ввода в запрос, поскольку вредоносный ввод может быть введен, и вы можете стать жертвой SQL Injection. Попытайтесь использовать подготовленные операторы (PDO) или правильно фильтровать и готовить ввод сначала, прежде чем передавать его в запрос.
if($_POST) {
$validator = array('success' => false, 'messages' => array());
$cusName = $_POST['cusName'];
$room_num = $_POST['room_num'];
$strDate = $_POST['strDate'];
$book = $_POST['book'];
$fctStatus = $_POST['fctStatus'];
//insert values to database
$sql = "INSERT INTO tblrent (name, room, start_date, booking, status)
VALUES ('$cusName', '$room_num', '$strDate', '$book', '$fctStatus')";
$query = $connect->query($sql);
//update the room status
//Note the quotes around the $room_num which should be used if it isn't an integer
$update = "UPDATE tblrooms SET status ='$fctStatus' WHERE rNumber='$room_num'";
$query2 = $connect->query($update);
//check if the insert query worked
if($query === TRUE) {
$validator['success'] = true;
$validator['messages'] = "Successfully Added";
} else {
$validator['success'] = false;
$validator['messages'] = "Error while adding the Customer information" . $connnect->error;
}
//check if the update query worked
if ($query2 === TRUE) {
echo "Room status updated successfully";
} else {
echo "Error updating room status: " . $connnect->error;
}
// close the database connection
$connect->close();
echo json_encode($validator);
}