我有一个大问题。我有一个预订页面,我有一个包含所有时间段的数据库。当我在某人预订时,根据需要多长时间预订插槽的数量。有没有办法可以显示可用的插槽,考虑到它需要多长时间,以便它不会在第二天发生冲突和重叠。
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "grass";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, day, hour FROM availability WHERE booked='' and day >= CURDATE()";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$next = date("M jS ", strtotime("".$row["day"] .""));
echo "<a class='button' style='margin:10px;' href=book_process.php?pageid=" . $row["id"] . "> <p style='font-size:20px; margin:0px;'>$next</p> <br> ". $row["hour"]. "</a>";
}
} else {
echo "You are booked up for the week";
}
$conn->close();
其他信息: 每个时段长15分钟。我有一个用户表和可用性表。 users表有很多关于用户的东西,包括。 time_taken,包含该用户需要多长时间。可用性始终如一。用户名,时间和日期。
基本上,它在数据库中搜索插槽,这些插槽是我指定的确切数字。示例我有一个标记为5的工作。另一个工作需要3.它需要显示插槽1和2.而不是3或4或5,因为它将与另一个工作冲突。