From a19d1db9901f9d0106a10d8d784fffb035245655 Mon Sep 17 00:00:00 2001 From: NOrtmann1 Date: Wed, 10 Jun 2026 20:39:27 +0200 Subject: [PATCH] search-Methode in DatabaseArticleManager --- php/model/DatabaseArticleManager.php | 37 ++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/php/model/DatabaseArticleManager.php b/php/model/DatabaseArticleManager.php index 83b4baa..7ea31d3 100644 --- a/php/model/DatabaseArticleManager.php +++ b/php/model/DatabaseArticleManager.php @@ -306,8 +306,41 @@ class DatabaseArticleManager implements ArticleManagerDAO { public function search(string $keyword): array { - // TODO: implement search() - return []; + $cleankeyword = trim($keyword); + + // Leeren Suchbegriff sofort abfangen + if ($cleankeyword === '') { + return []; + } + + $query = "SELECT id, title, content, author, category, tags, creationdate + FROM articles + WHERE LOWER(title) LIKE :keyword + OR LOWER(content) LIKE :keyword"; + + $stmt = $this->db->prepare($query); + + // Wildcards für die LIKE-Suche hinzufügen und Keyword in Kleinbuchstaben umwandeln + $searchParam = '%' . strtolower($cleankeyword) . '%'; + $stmt->bindValue(':keyword', $searchParam, PDO::PARAM_STR); + + $stmt->execute(); + $articles = $stmt->fetchAll(PDO::FETCH_ASSOC); + + $filteredArticles = []; + foreach ($articles as $article) { + $filteredArticles[] = new Article( + intval($article['id'] ?? 0), + $article['title'] ?? '', + $article['content'] ?? '', + $article['author'] ?? '', + $article['category'] ?? '', + $article['tags'] ?? '', + $article['creationdate'] ?? '' + ); + } + + return $filteredArticles; } } \ No newline at end of file