From c6de2ed960ea2786ba6033ca198790e088c35e8e Mon Sep 17 00:00:00 2001
From: Bitha17 <16521076@mahasiswa.itb.ac.id>
Date: Sun, 8 Oct 2023 18:28:39 +0700
Subject: [PATCH] edit search query

---
 app/Models/Event.php | 65 ++++++++++++++++++++++----------------------
 1 file changed, 33 insertions(+), 32 deletions(-)

diff --git a/app/Models/Event.php b/app/Models/Event.php
index 1cd39c4..c9636eb 100644
--- a/app/Models/Event.php
+++ b/app/Models/Event.php
@@ -163,48 +163,49 @@ class EventModel {
     }
 
     public function searchEvents($searchQuery, $sortKey, $minStock) {
-    global $db;
+        global $db;
 
-    try {
-        $sql = "SELECT * FROM events WHERE 1"; // Start with a true condition
+        try {
+            $sql = "SELECT * FROM events WHERE 1"; // Start with a true condition
 
-        // Add search condition 
-        if (!empty($searchQuery)) {
-            $sql .= " AND (LOWER(event_name) LIKE :query OR LOWER(event_location) LIKE :query)";
-        }
+            // Add search condition 
+            if (!empty($searchQuery)) {
+                $sql .= " AND (LOWER(event_name) LIKE CONCAT('%', :query, '%') OR LOWER(event_location) LIKE CONCAT('%', :query, '%'))";
+            }
 
-        // Add filter condition 
-        if ($minStock !== null) {
-            $sql .= " AND event_stock >= :minStock";
-        }
 
-        // Add sort condition
-        if ($sortKey === 'name') {
-            $sql .= " ORDER BY event_name ASC";
-        } elseif ($sortKey === 'location') {
-            $sql .= " ORDER BY event_location ASC";
-        }
+            // Add filter condition 
+            if ($minStock !== null) {
+                $sql .= " AND event_stock >= :minStock";
+            }
 
-        $stmt = $db->prepare($sql);
+            // Add sort condition
+            if ($sortKey === 'name') {
+                $sql .= " ORDER BY event_name ASC";
+            } elseif ($sortKey === 'location') {
+                $sql .= " ORDER BY event_location ASC";
+            }
 
-        // Bind search query parameter
-        if (!empty($searchQuery)) {
-            $lowerSearchQuery = strtolower("%" . $searchQuery . "%");
-            $stmt->bindParam(':query', $lowerSearchQuery, PDO::PARAM_STR);
-        }
+            $stmt = $db->prepare($sql);
 
-        // Bind filter parameter 
-        if ($minStock !== null) {
-            $stmt->bindParam(':minStock', $minStock, PDO::PARAM_INT);
-        }
+            // Bind search query parameter
+            if (!empty($searchQuery)) {
+                $lowerSearchQuery = strtolower("%" . $searchQuery . "%");
+                $stmt->bindParam(':query', $lowerSearchQuery, PDO::PARAM_STR);
+            }
 
-        $stmt->execute();
+            // Bind filter parameter 
+            if ($minStock !== null) {
+                $stmt->bindParam(':minStock', $minStock, PDO::PARAM_INT);
+            }
 
-        return $stmt->fetchAll(PDO::FETCH_ASSOC);
-    } catch (PDOException $e) {
-        throw new Exception("Error searching events: " . $e->getMessage());
+            $stmt->execute();
+
+            return $stmt->fetchAll(PDO::FETCH_ASSOC);
+        } catch (PDOException $e) {
+            throw new Exception("Error searching events: " . $e->getMessage());
+        }
     }
-}
 
     
 
-- 
GitLab