prepare('SELECT title, xptype, tags, description, duration, image_url FROM experiences ORDER BY id DESC'); // Execution de la requête SQL $stmt->execute(); // Retourne toutes les données collectés dans un ARRAY return $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { // En cas d'erreur die("Erreur de connexion à la base de donnée portfolio :".$e->getMessage()); return []; } } // Fonction qui va afficher les experiences function afficherXP() { // Récupération de la liste des experiences $experiences = listeXP(); // Ajout de la class pour la liste des experiences FUTUR CSS echo '
'; // Pour chaque experience dans le ARRAY foreach ($experiences as $experience) { // On récupère le titre, le type, la description, la durée et l'image et le tableau avec les tags $titre = htmlspecialchars($experience['title']); $xptype = htmlspecialchars($experience['xptype']); $description = nl2br(htmlspecialchars($experience['description'])); $duration = htmlspecialchars($experience['duration']); $image = htmlspecialchars($experience['image_url']); $tags = []; // S'il y a des tags alors on les sépares grâce à la virgule que l'user à ajouté dans le champs (tags1,tags2,etcc...) if (!empty($experience['tags'])) { $tags = array_filter(array_map('trim', explode(',', $experience['tags']))); } echo '
'; // Si la donnée avec l'image n'est pas null alors on l'affiche if (!empty($image)) { echo '
'; echo 'Image de l experience ' . $titre . ''; echo '
'; } // Ajout de la class project-content et du titre echo '
'; echo '

' . $titre . '

'; echo '

Type : ' . $xptype . '

'; echo '

Durée : ' . $duration . '

'; // Si les tags ne sont pas vides alors afficher if (!empty($tags)) { echo '
'; foreach ($tags as $tag) { echo '' . htmlspecialchars($tag) . ''; } echo '
'; } // Ajout de la description et fin des classes echo '

' . $description . '

'; echo '
'; echo '
'; } echo '
'; }