【发布时间】:2021-05-24 02:44:23
【问题描述】:
我正在做一个小型租赁系统,我的 SQL 数据库将记录客户所租产品的详细信息和过期日期。如果日期超过逾期日期,“状态”将自动从“当前出租”设置为“逾期”。截至目前,这是我能想到的,但当然,我的代码中的逻辑是错误的。请参阅附图以获得更清晰的观察。
PHP
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "assignment3";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$retrieve = mysqli_query($conn,"SELECT * FROM rentproducts WHERE status = 'Currently Renting'");
$row = mysqli_fetch_array($retrieve);
$today = new DateTime(date("d-m-Y"));
$overduedate = new DateTime($row['overduedate']);
$overduedays = $overduedate->diff($today)->format("%a");
echo $overduedays;
if ($overduedays >= 1)
{
$sql = "UPDATE rentproducts SET status = 'Overdue' WHERE status = 'Currently Renting'";
mysqli_query($conn, $sql);
}
?>
【问题讨论】:
-
您有问题吗?这不是你想要的吗?请解释
-
你不能简单地做
UPDATE rentproducts SET status = 'Overdue' WHERE status = 'Currently Renting' AND overduedate - NOW() >= INTERVAL 1 DAY吗? -
@Dharman 试过了,没用
-
您通常不会存储派生数据