我想查看从db读取的时间是否与用户提供的时间重叠。检查两次是否重叠
我的数据库看起来是这样的:
-----------------------------------------------
|organiser|meeting_start|meeting_end|boardroom|
-----------------------------------------------
| John Doe| 1340193600 | 1340195400| big |
-----------------------------------------------
我的代码如下所示:
date_default_timezone_set('Africa/Johannesburg');
$from = strtotime($_GET['meeting_date'] . ' ' . $_GET['meeting_start']);
$to = strtotime($_GET['meeting_date'] . ' ' . $_GET['meeting_end']);
$another_meeting = false;
$meeting_date = strtotime($_GET['meeting_date']);
$meeting_next = $meeting_date + 86400;
$result = mysql_query("SELECT meeting_start, meeting_end FROM admin_boardroom_booking WHERE boardroom = '" . $_GET['boardroom'] . "' AND meeting_start >= '" . $meeting_date . "' AND meeting_end < '" . $meeting_next . "'")or die(mysql_error());
while($row = mysql_fetch_array($result)) {
$from_compare = $row['meeting_start'];
$to_compare = $row['meeting_end'];
$intersect = min($to, $to_compare) - max($from, $from_compare);
if ($intersect < 0)
$intersect = 0;
$overlap = $intersect/3600;
if ($overlap <= 0) {
$another_meeting = true;
break;
}
}
if ($another_meeting)
echo 'ERROR';
如果键入的目的两个重叠的时候,它没有回音错误。我究竟做错了什么?
您的代码容易受到SQL注入的影响。 *请*阅读此:http://stackoverflow.com/questions/601300/what-is-sql-injection并切换到参数化查询。旧的'mysql_'函数即将被弃用,你应该使用MySQLi来代替。 – Polynomial
坦克的帮助。但这并没有解决我的问题。 – Albert
@DarkRanger:你可以在while循环之前输入echo $ result并让我知道你得到了什么? –