if ($start == "24:00") { $start = "23:59"; }
if ($end == "24:00") { $end = "23:59"; }
- $query = sprintf ("SELECT name,starttime,endtime,person.oid FROM person,availability "
+ $query = sprintf ("SELECT name,person.oid FROM person,availability "
."WHERE starttime <= '%s %s' AND endtime >= '%s %s' "
."AND person.name = availability.person ORDER BY name",
$date, $start, $date, $end);
for ($nr=0; $nr < pg_NumRows ($sth); $nr++) {
$row = pg_fetch_array ($sth, $nr);
+# Fragment [----------------] a=assignment && f=fragment
+# Illegal Assignment (a) [-------] a.s <= f.s && a.e >= f.s
+# Illegal Assignment (b) [-------] a.s >= f.s && a.e <= f.e
+# Illegal Assignment (c) [-------] a.s <= f.e && a.e >= f.e
+# Illegal Assignment (a/c) [------------------------]
+<protect>
+
$query = sprintf ("SELECT person FROM assignment "
."WHERE person = '%s' "
- ."AND starttime >= '%s %s' AND endtime <= '%s %s' ",
- $row['name'], $date, $start, $date, $end);
+ ."AND ( starttime <= '%s %s' AND endtime >= '%s %s' "
+ ."OR starttime >= '%s %s' AND endtime <= '%s %s' "
+ ."OR starttime <= '%s %s' AND endtime >= '%s %s' ) ",
+ $row['name'],
+ $date, $start, $date, $start,
+ $date, $start, $date, $end,
+ $date, $end, $date, $end);
+</protect>
$sth2 = pg_exec ($dbh, $query) or die("Datenbank-Abfrage!");
if ( pg_NumRows ($sth2) == 0) {
echo ("<br> ->");