diff --git a/app/Models/Event.php b/app/Models/Event.php index 1cd39c45f169ba400c782fcd6363f4a20937f3d0..c9636eb61f9e38f172e4ed1354cdd6577e410da9 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()); + } } -}