setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 1. Récupération des photos publiées uniquement $stmt = $pdo->query("SELECT * FROM photos WHERE is_published = 1 ORDER BY taken_at DESC, id DESC"); $photos = $stmt->fetchAll(PDO::FETCH_ASSOC); // 2. Extraire les mots-clés uniques pour les filtres publics $uniqueKeywords = []; foreach ($photos as $photo) { if (!empty($photo['keywords'])) { $tags = explode(',', $photo['keywords']); foreach ($tags as $tag) { $trimmed = trim($tag); if (!empty($trimmed) && !in_array($trimmed, $uniqueKeywords)) { $uniqueKeywords[] = $trimmed; } } } } sort($uniqueKeywords); } catch (PDOException $e) { $photos = []; $uniqueKeywords = []; } ?> Portfolio Photo

Portfolio