我正在开发一个在线预订系统,目前使用表格预订(id、slot id、治疗、用户、日期)、治疗(id、名称、描述、持续时间)、时间段(id、时间)。在预订的第一页,您会看到治疗选项和日历日期选择器。一旦你选择了日历日期,它就会将它发送到一个 php 页面并返回一个可用时间段的列表。
在这个 php 页面中,我有一个预订时间数组,一个包含所有插槽的数组。从所有可用时段中减去预订时间,然后将剩余的数组(所有可用时段)显示给用户,以便他们查看可以预约的所有时间。
现在我想在混合中添加一个持续时间变量。这意味着如果持续时间大于 2,则预订时间段(例如 3,5)和可用时间段(1,2,3,4,5,6,7,8,9,10)的数组,取第二个数组的第一个数组是(6,7,8,9,10)。如果持续时间为 2,则 (1,2,6,7,8,9,10),如果持续时间为 1 (1,2,4,6,7,8,9,10)。有谁知道我怎么能做这样的事情?
只是为了获得建议的帮助,这是 php 页面:
<?php
include('connection.php');
error_reporting(E_ALL);
$treatment = $_POST['treatment'];
$bookdate = $_POST['bookdate'];
if(!isset($treatment) && isset($bookdate)){
$else = mysql_query("SELECT * FROM SLOTS");
echo '<SELECT>';
while($array_else = mysql_fetch_array($else)){
echo "<OPTION value=".$array_else['SL_ID'].">".$array_else['SL_TIME']."</OPTION>";
}
echo "</SELECT>";
}else{
$exp = explode("-", $bookdate);
//determine what day of the week it is
$timestamp = mktime(0,0,0,$exp[1],$exp[0],$exp[2]);
$dw = date( "w", $timestamp); // sun0,mon1,tue2,wed3,thur4,fri5,sat6
//find bookings with same date
$q1 = mysql_query("SELECT BOOK_SLOT_ID FROM BOOKINGS WHERE BOOK_DATE='$bookdate'");
//make array of booking slots
$array1 = array();
while ($s1 = mysql_fetch_array($q1)) {
$array1[] = $s1['BOOK_SLOT_ID'];
}
$q2 = mysql_query("SELECT SL_ID FROM SLOTS");
//make array of all slots
$array2 = array();
while ($s2 = mysql_fetch_array($q2)) {
$array2[] = $s2['SL_ID'];
}
if($dw == 6){
$q = mysql_query("SELECT SL_ID FROM SLOTS ORDER BY SL_ID DESC LIMIT 4");
$array = array();
while ($s = mysql_fetch_array($q)) {
$array[] = $s['SL_ID'];}
$array_res_merge = array_merge((array)$array1,(array)$array);
$arr_res = array_diff($array2, $array_res_merge);
}elseif($dw != 6){
//remove bookings from all slots
$arr_res = array_diff($array2, $array1);
}
echo '<div>';
//make selectable options of results
echo '<SELECT id="timeslots">';
foreach($arr_res as $op){
$r = mysql_query("SELECT SL_TIME FROM SLOTS WHERE SL_ID='$op'");
$q3 = mysql_fetch_array($r);
echo "<OPTION value=".$op.">".$q3['SL_TIME']."</OPTION>";
}
echo '</SELECT>';
echo'</div>';
}
?>
非常感谢您对此问题的任何帮助。