From ece3a68631e0421c07b5dbd730e98fb18af73b6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arch=20de=20No=C3=A9?= <noe.le-cam@etu.unistra.fr> Date: Mon, 28 Mar 2022 22:02:32 +0200 Subject: [PATCH] Fixed search --- assets/css/search.css | 1 + assets/database.sqlite | Bin 45056 -> 45056 bytes assets/php/models/TimeSlot.php | 6 ++-- search.php | 49 ++++++++------------------------- 4 files changed, 16 insertions(+), 40 deletions(-) diff --git a/assets/css/search.css b/assets/css/search.css index 7290550..156a348 100644 --- a/assets/css/search.css +++ b/assets/css/search.css @@ -5,6 +5,7 @@ section { overflow:hidden; overflow-y:scroll; height: 55vh; width: 40rem; + border-radius: 10px; } h2 { diff --git a/assets/database.sqlite b/assets/database.sqlite index a261d9485895755000ef963a74c9d1c472888104..0023b829897185d52c3a41616f2dd6d40079f46f 100644 GIT binary patch literal 45056 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 Ov@~{Y$4i@{>i+>p^+wJB literal 45056 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 a?yqIv$g>kv({3rely2HB*t0WDr2h}g=6Zzy diff --git a/assets/php/models/TimeSlot.php b/assets/php/models/TimeSlot.php index dc93b41..bbcedb2 100644 --- a/assets/php/models/TimeSlot.php +++ b/assets/php/models/TimeSlot.php @@ -68,6 +68,10 @@ class TimeSlot public function cut(TimeSlot $slot): array { + // Early return : nothing to cut / no overlap + if ($slot->start >= $this->end || $slot->end <= $this->start) + return [$this]; + $cutout = []; $ss_diff = $this->start->diff($slot->start); @@ -94,8 +98,6 @@ class TimeSlot $pre->end->add($es_diff); $post->start->add($se_diff); array_push($cutout, $pre, $post); - } elseif (!($ss_diff->invert && !$ee_diff->invert)) { - array_push($cutout, $this); } return array_filter($cutout, function (TimeSlot $e) { diff --git a/search.php b/search.php index 178adaa..5ba4008 100644 --- a/search.php +++ b/search.php @@ -17,7 +17,8 @@ try { $query = $pdo->prepare("SELECT id, type, start_time, end_time, location FROM schedule NATURAL JOIN rooms WHERE type LIKE :type AND date(date) = date(:date) - AND time(end_time) > time(:start_time) AND time(start_time) < time(:end_time)"); + AND time(end_time) > time(:start_time) AND time(start_time) < time(:end_time) + ORDER BY start_time"); /** * QUERY DESCRIPTION : @@ -78,9 +79,8 @@ try { <h2>Résultats de la recherche</h2> <hr> <section> - <?php - $final_results = []; + $results = []; foreach ($wanted_slots as $span) { $scissors = array_filter( $query_result, @@ -89,51 +89,24 @@ try { } ); + foreach ($scissors as $b) { + $b->display(); + } + $strips = [$span]; foreach ($scissors as $blade) { $cuts = []; foreach ($strips as $sub_span) - { - echo "Strip"; - foreach ($sub_span->cut($blade) as $x) { - $x->display(); - } $cuts = array_merge($cuts, $sub_span->cut($blade)); - } - - $strips = $cuts; + + $strips = $cuts; } - $final_results = array_merge($final_results, $strips); + $results = array_merge($results, $strips); } - foreach ($final_results as $slot) + foreach ($results as $slot) $slot->display(); - - // echo "test"; - // $test_room = new Room(); - // $test_room->id = "UWU"; - // $test_room->location = 10; - // $test_room->type = "tp"; - - // $test_span = new TimeSlot(); - // $test_span->start_time = "09:00"; - // $test_span->end_time = "15:00"; - // $test_span->room = $test_room; - - // $test_cut = new TimeSlot(); - // $test_cut->start_time = "13:00"; - // $test_cut->end_time = "15:00"; - // $test_cut->room = $test_room; - - - // $res = $test_span->cut($test_cut); - // foreach ($res as $x) { - // $x->display(); - // } ?> - - - </section> </main> <?php include "assets/php/cookies.php"; ?> -- GitLab