Ajout de l'affichage des projets grâce à une requête SQL
This commit is contained in:
+68
-14
@@ -1,23 +1,77 @@
|
||||
<?php
|
||||
// On démarre une session au cas où le script soit exécuté directement par URL
|
||||
session_start();
|
||||
|
||||
// Ajout de connexion a la bdd
|
||||
require_once('../functions/databaseConnection.php');
|
||||
|
||||
// Fonction qui va permettre de lister les projets (le but de la fonction est que dans le futur il y aura toutes les fonctions par rapport à un seul thème dans un seul fichier)
|
||||
// Fonction qui va faire une requête SQL afin de collecter tous les projets
|
||||
function listeProjets() {
|
||||
// On ajoute en dépendance la connexion à la base de donnée
|
||||
require_once 'databaseConnection.php';
|
||||
// Préparation de la variable
|
||||
global $dbh;
|
||||
|
||||
// Préparation de la requête qui va lister les projets
|
||||
$stmt = $dbh->prepare('SELECT * FROM projects');
|
||||
// Essayer
|
||||
try {
|
||||
// Requête SQL qui récupère titre, tags, description, image_url
|
||||
$stmt = $dbh->prepare('SELECT title, tags, description, image_url FROM projects');
|
||||
// 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 [];
|
||||
}
|
||||
}
|
||||
|
||||
// Execution de la requête
|
||||
$stmt->execute();
|
||||
// On pourra même prévoir plus tard grâce à cette requête préparer d'ajouter des filtrages pour la liste (ex : En cours/Défjà fini etc...)
|
||||
// Fonction qui va afficher les projets
|
||||
function afficherProjets() {
|
||||
// Récupération de la liste des projets
|
||||
$projets = listeProjets();
|
||||
|
||||
// On sauvegarde les données renvoyées
|
||||
$donneerenvoyee = $stmt->fetch();
|
||||
// Ajout de la class pour la liste des projets FUTUR CSS
|
||||
echo '<div class="projects-list">';
|
||||
|
||||
// Puis on les renvoies
|
||||
return $donneerenvoyee;
|
||||
|
||||
// Pour chaque projet dans le ARRAY
|
||||
foreach ($projets as $projet) {
|
||||
// On récupère le titre, la description et l'image et le tableau avec les tags
|
||||
$titre = htmlspecialchars($projet['title']);
|
||||
$description = nl2br(htmlspecialchars($projet['description']));
|
||||
$image = htmlspecialchars($projet['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($projet['tags'])) {
|
||||
$tags = array_filter(array_map('trim', explode(',', $projet['tags'])));
|
||||
}
|
||||
|
||||
echo '<article class="project-card">';
|
||||
|
||||
// Si la donnée avec l'image n'est pas null alors on l'affiche
|
||||
if (!empty($image)) {
|
||||
echo '<div class="project-banner">';
|
||||
echo '<img src="' . $image . '" alt="Image du projet ' . $titre . '">';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
// Ajout de la class project-content et du titre
|
||||
echo '<div class="project-content">';
|
||||
echo '<h2>' . $titre . '</h2>';
|
||||
|
||||
// Si les tags ne sont pas vides alors afficher
|
||||
if (!empty($tags)) {
|
||||
echo '<div class="project-tags">';
|
||||
foreach ($tags as $tag) {
|
||||
echo '<span class="tag">' . htmlspecialchars($tag) . '</span>';
|
||||
}
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
// Ajout de la description et fin des classes
|
||||
echo '<p>' . $description . '</p>';
|
||||
echo '</div>';
|
||||
|
||||
echo '</article>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
Reference in New Issue
Block a user