connect_error) { die("Verbindung fehlgeschlagen: " . $conn->connect_error); } $conn->set_charset("utf8mb4"); ?>
Hinweise zur Suche:
• Mehrere Begriffe durch Leerzeichen trennen – es werden nur Ergebnisse angezeigt, die alle Begriffe enthalten.
• Jahreszahlen (z. B. 2013) finden alle Beiträge aus diesem Jahr.
• Monatsangaben (z. B. 12.2013) finden alle Beiträge aus diesem Monat.
• Genaue Daten (z. B. 13.12.2013) finden Beiträge von diesem Tag.
• Wörter wie Katholisch Rundfunk suchen beide Begriffe im Text und Teaser.
❌ Keine gültigen Suchbegriffe.
"; } else { $whereSQL = implode(" AND ", $conditions); // --- Gesamtanzahl Treffer --- $count_sql = "SELECT COUNT(*) as total FROM tt_content WHERE $whereSQL"; $count_stmt = $conn->prepare($count_sql); if ($count_stmt === false) { die("Prepare fehlgeschlagen (COUNT): " . $conn->error); } // bind params (call_user_func_array benötigt Referenzen) $bindParams = []; $bindParams[] = $types; foreach ($params as $k => $v) { $bindParams[] = &$params[$k]; } call_user_func_array([$count_stmt, 'bind_param'], $bindParams); $count_stmt->execute(); $count_result = $count_stmt->get_result(); $total = (int)$count_result->fetch_assoc()['total']; $count_stmt->close(); if ($total > 0) { // --- Ergebnisse der aktuellen Seite --- $sql = "SELECT uid, header, bodytext, `date` FROM tt_content WHERE $whereSQL ORDER BY `date` DESC LIMIT ? OFFSET ?"; $stmt = $conn->prepare($sql); if ($stmt === false) { die("Prepare fehlgeschlagen (SELECT): " . $conn->error); } $paramsFull = array_merge($params, [$results_per_page, $offset]); $typesFull = $types . "ii"; $bindParams = []; $bindParams[] = $typesFull; foreach ($paramsFull as $k => $v) { $bindParams[] = &$paramsFull[$k]; } call_user_func_array([$stmt, 'bind_param'], $bindParams); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { $header = htmlspecialchars($row["header"], ENT_QUOTES, 'UTF-8'); $bodytext = $row["bodytext"]; // Treffer markieren (für jeden Term) foreach ($terms as $t) { $tt = trim($t); if ($tt === '') continue; $pattern = "/" . preg_quote($tt, "/") . "/i"; $header = preg_replace($pattern, "$0", $header); $bodytext = preg_replace_callback($pattern, function($matches){ return "{$matches[0]}"; }, $bodytext); } $datum = date("d.m.Y", (int)$row["date"]); echo "❌ Keine Ergebnisse gefunden.
"; } } } $conn->close(); ?>