目前我只显示预订时间,但我现在正在寻找一种方法来显示预订时间之间的可用时间。这是我使用的标记。
$stmt = $pdo->prepare('SELECT * FROM bokningar WHERE frisor = :frisor AND datum = :datum ORDER BY datum, tid');
$stmt->execute(array(
':frisor' => $_GET['id'],
':datum' => $dag
));
while($row = $stmt->fetch()) {
echo goes here etc
}
对于每个$行,有$ row ['tid'](开始时间)和$ row ['tid_slut](结束时间)
这就是我想要的样子:
07:00-10:00
Available
10:00-12:00
Booked
12:00-13:20
Booked
13:20-14:50
Available
14:50-18:00
Booked
例如。 我最简单的方法是如何处理这个?
提前致谢!
编辑:忘了添加开始时间的变量(例如07:00):$ arbetstider_idag [0]和结束时间:$ arbetstider_idag [1]
答案 0 :(得分:1)
循环内部存储结束时间变量。在下一次迭代中,比较当前开始时间和存储的结束时间。如果不同,从结束到开始的时间是免费的(因为否则它将在数据库中),所以从最后一个到当前开始的回声时间可用。
示例:
$start_time = $arbetstider_idag[0];
$end_time = $arbetstider_idag[1];
while($row = $stmt->fetch()) {
if ($start_time != $row['tid'])
echo "{$start_time}-{$row['tid']}<br>Available<br><br>";
echo "{$row['tid']}-{$row['tid_slut']}<br>Booked<br><br>";
$start_time = $row['tid_slut'];
}
if ($row['tid_slut'] != $end_time)
echo "{$row['tid_slut']}-{$end_time}<br>Available<br><br>";