trim($_GET['search'] ?? ''), 'game' => trim($_GET['game'] ?? ''), 'class' => trim($_GET['class'] ?? ''), 'patch' => trim($_GET['patch'] ?? ''), ]; $sql = "SELECT id, title, game, class_name, patch, summary, author, created_at FROM builds WHERE 1=1"; $params = []; if ($filters['search']) { $sql .= " AND (title LIKE :search OR summary LIKE :search)"; $params[':search'] = '%' . $filters['search'] . '%'; } if ($filters['game']) { $sql .= " AND game = :game"; $params[':game'] = $filters['game']; } if ($filters['class']) { $sql .= " AND class_name = :class"; $params[':class'] = $filters['class']; } if ($filters['patch']) { $sql .= " AND patch = :patch"; $params[':patch'] = $filters['patch']; } $sql .= " ORDER BY created_at DESC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $builds = $stmt->fetchAll(); $games = $pdo->query("SELECT DISTINCT game FROM builds ORDER BY game")->fetchAll(PDO::FETCH_COLUMN); $classes = $pdo->query("SELECT DISTINCT class_name FROM builds ORDER BY class_name")->fetchAll(PDO::FETCH_COLUMN); $patches = $pdo->query("SELECT DISTINCT patch FROM builds WHERE patch IS NOT NULL AND patch != '' ORDER BY patch")->fetchAll(PDO::FETCH_COLUMN); include __DIR__ . '/includes/header.php'; ?>
Filter by game, class, and patch for fast comparisons.
= h($build['summary'] ?: 'Build summary pending.') ?>