Это следует из предыдущего вопроса ( html / php / sql form со вставкой / обновлением ), поэтому используйте его для ссылки в HTML-форме. Когда клиент переходит, активный клиент изменяется на 1, номер комнаты room_vacant изменен на 0, и запись занятости заполняется.
Кроме того, первый арендный платеж должен быть сгенерирован с использованием всей этой информации. Файл rent_occupancy_id разработан через пользователя lastInsertId()
, поскольку последний вставленный идентификатор был бы идентификатором занятости.
Сценарий rent_cost генерируется, если клиент переходит на льготы на нет. Если клиент не пользуется преимуществами, то rent_cost = £ 126,57, но если они тогда rent_cost = £ 20.03. date_lastpaid
совпадает с start_date записи занятости клиента, а date_due равен неделе, date_lastpaid
.
Проблема заключается в том, что запись о ренте не создается, но все другие изменения для других записей и т. Д. Производятся. Любая помощь приветствуется.
<?php require("dbconnect.php"); //CLIENT $id = $_POST['id']; //UPDATES client's to 1/Yes to say that they're now an active client in JRH, //where the selected client's ID is equal to :id $stmt = $dbh->prepare("UPDATE client SET active = 1 WHERE client_id=:id"); $stmt->bindParam(':id', $id); $stmt->execute(); //ROOM $room_id = $_POST['room_id']; $stmt = $dbh->prepare("UPDATE room SET room_vacant = 0 WHERE room_id = :room_id"); $stmt->bindParam(':room_id', $room_id); $stmt->execute(); //OCCUPANCY $id = $_POST['id']; $room_id = $_POST['room_id']; $start_date = $_POST['start_date']; $stmt = $dbh->prepare("INSERT INTO occupancy (occupancy_client_id, occupancy_room_id, start_date) VALUES(:id, :room_id, :start_date)"); $stmt->bindParam(':id', $id); $stmt->bindParam(':room_id', $room_id); $stmt->bindParam(':start_date', $start_date); $stmt->execute(); //Working out Rent Cost $id = $_POST['id']; $stmt=$dbh->prepare("SELECT * FROM client WHERE client_id=:id"); $stmt->bindParam(':id', $id); $stmt->execute(); $row = $stmt->fetch(); //Works out whether a client has benefits or not, //and then uses this information to generate a cost of the rent if ($row['benefits'] == '0') { $rent_cost = "126.57"; } else{ $rent_cost = "20.03"; } //RENT INSERT // //As the occupancy record is being created above //and the rent table needs a rent_occupancy_id to join, //then we use lastInsertId() in order to get that occupancy id $rent_occupancy_id = $dbh->lastInsertId(); $date_lastpaid = $_POST['start_date']; //As the client hasn't made a payment yet, //we say that their last payment was the date they joined $date_due = strtotime($date_lastpaid); $date_due = strtotime('+1 week', $date_due); $date_due = date('Y/m/d', $date_due); $stmt = $dbh->prepare("INSERT INTO rent (rent_occupancy_id, rent_cost, date_lastpaid, date_due) VALUES (:rent_occupancy_id, :rent_cost, :date_lastpaid, :date_due)"); $stmt->BindParam(':rent_occupancy_id', $rent_occupancy_id); $stmt->BindParam(':rent_cost', $rent_cost); $stmt->BindParam(':date_lastpaid', $date_lastpaid); $stmt->BindParam(':date_due', $date_due); $stmt->execute(); ?>
просто измените строчную первую букву в bindParam()
;
$stmt->bindParam(':rent_occupancy_id', $rent_occupancy_id); $stmt->bindParam(':rent_cost', $rent_cost); $stmt->bindParam(':date_lastpaid', $date_lastpaid); $stmt->bindParam(':date_due', $date_due); $stmt->execute();