Quiero ver si una hora que leo desde un archivo db se solapa con una hora proporcionada por un usuario.Comprueba si se superponen dos veces
Mi base de datos es el siguiente:
-----------------------------------------------
|organiser|meeting_start|meeting_end|boardroom|
-----------------------------------------------
| John Doe| 1340193600 | 1340195400| big |
-----------------------------------------------
Mi código es el siguiente:
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';
Si escribo dos veces superpuestas a propósito, no lo hace de error eco. ¿Qué estoy haciendo mal?
Su código es vulnerable a las inyecciones de SQL. * * Lea esto: http://stackoverflow.com/questions/601300/what-is-sql-injection y cambie a consultas con parámetros. Las viejas funciones de 'mysql_' están a punto de desaparecer, debería usar MySQLi en su lugar. – Polynomial
Tanques para la ayuda. Sin embargo, eso no resolvió mi problema. – Albert
@DarkRanger: ¿puedes escribir echo $ result antes del ciclo while y decirme qué obtienes? –