🍏
SAE203
  • 📖CM1 : Présentation de la SAE
  • 💾CM2 : Introduction à GitHub
  • 🎆TD01 : intégration 1/2
  • 🎆TD02 : intégration 2/2
  • 🎆CM3 : Template et responsive
  • 📔TD03 : Formulaire et traitement
  • 🗓️TD04 : filter_var et filtrage des données des formulaires en PHP
  • 🤝CM4 : Eco-conception & accessibilité
  • 💾TD05 : github
  • 🌳TD06 : Eco-conception & accessibilité
  • 🐛TP01 : réalisation de la page listing.php
  • 🌐TD07 : HEBERGEMENT SITE SAE203
  • 🌐TD08 : Les Clés du DevOps
  • 🏆BILAN des rendus
  • 😇Guide de Dépannage Git
  • **anciennes pages ci-dessous**
  • 🐛ancien TP01 : réalisation de la page listing.php
  • 🗓️ancien TD04 : vérification front
  • 📚ancien TD05 : MYSQL en ligne de commandes
  • *************************
  • 📖CM5 : Présentation de la semaine 2
  • 🤩TD 09 et 10 : librairie CRUD en PHP (1/2)
  • 😎TD 11 et 12 : librairie CRUD en PHP (2/2)
  • 🏍️TP 02 : Recherche : autocomplétion du formulaire + résultats
  • 🔐TD 13: Les secrets du htaccess
  • 🐛TP 03: débugage
  • ✅Bilan des rendus de la 2ieme semaine
Propulsé par GitBook
Sur cette page
  • support de cours
  • objectif
  • connexion à la base de données
  • passer l'envois de vos requêtes en UTF8
  • préparation de la requete
  • affichage sommaire des informations
  • amélioration de l'affichage des informations
Exporter en PDF

TP01 : réalisation de la page listing.php

connexion de la page listing.php à la base de données

PrécédentTD06 : Eco-conception & accessibilitéSuivantTD07 : HEBERGEMENT SITE SAE203

Dernière mise à jour il y a 2 ans

Pour pouvoir réaliser correctement l'exercice su votre VPS, vous devez avoir installé les paquets suivants sur votre serveur: php8.1-xml, php8.1-mysqli, php8.1-mbstring, php8.1-curl . Si vous avez un doute, avant de commencer, exécutez les commandes suivantes

sudo -i
apt update
apt install php8.1-xml php8.1-mysqli php8.1-mbstring php8.1-curl 

support de cours

vous pouvez vous appuyer sur le cours de R213 dons le support est ici:

objectif

nous allons ici relier la page listing.php (qui pour l'instant ne contient que 2 ou 3 'articles' fictives) à la base de données.

dans notre exemple de présentation nous parlions de bandes dessinées reliées à une table d'auteurs.

connexion à la base de données

ouvrir votre fichier listing.php et commencer par inclure la ligne permettant la connexion à la base de données (à mettre au début, juste après body par exemple). attention changer monMotDePasse par votre propre mot de passe d'accès à votre base de données (celui du compte sae203)

<?php
$mabd = new PDO('mysql:host=localhost;dbname=sae203;charset=UTF8;', 'sae203', 'monMotDePasse');
?>

vous pouvez déjà tester votre page listing.php. En la testant, vous devez voir aucun changement, sauf si il y a un soucis de connexion à votre base de données et dans ce cas vous aurez un message d'erreur qu'il faudra résoudre (erreur de mot de passe, de nom de base de données, d'identifiant...)

passer l'envois de vos requêtes en UTF8

ajouter la ligne nécessaire

<?php
$mabd = new PDO('mysql:host=localhost;dbname=sae203;charset=UTF8;', 'sae203', 'monMotDePasse');

$mabd->query('SET NAMES utf8;');
?>

préparation de la requete

Après la connexion à la base de données, il est maintenant nécessaire de préparer et d'exécuter la requete SQL permettant de récupérer toutes les informations sur les albums avec le nom des auteurs (pour notre exemple ici! il faut bien sur adapter cela à vos propres données)

...
$req = "SELECT * FROM bandes_dessinees INNER JOIN auteurs ON bandes_dessinees._auteur_id = auteurs.auteur_id";
$resultat = $mabd->query($req);

affichage sommaire des informations

ajouter les lignes suivantes (en les adaptant à vos données!)

...
foreach ($resultat as $value) {
    echo $value['bd_titre'] . ' , ' . $value['bd_prix'] . ' euro ';
    echo '<br> auteur: ' . $value['auteur_nom']. '<hr>';
}

vous pouvez maintenant tester votre page 'listing.php' , et vous devez observer l'affichage (présentation sommaire) de toutes vos données

amélioration de l'affichage des informations

vous pouvez maintenant améliorer l'affichage des données en fonction de ce que vous aviez prévue en terme de html et css au début de la SAE.

exemple:

...
foreach ($resultat as $value) {
    echo '<div class="album">' ;
    echo '<h3>'.$value['bd_titre'] . '</h3>';
    echo '<p>tarif: ' . $value['bd_prix'] . ' euro </p>';
    echo '<p class="page">' . $value['bd_page'] . ' pages </p>';
    echo '<p class="auteur"> auteur: ' . $value['auteur_nom'] . '</p>';
    echo '</div>';
}

insertion des photos

vous pouvez ajouter dans le foreach, l'affichage du champs photo. il faut bien sur que vos photos soient dans un dossier images dans votre dossier de votre projet.

...
foreach ($resultat as $value) {
    echo '<div class="album">' ;
    echo '<h3>'.$value['bd_titre'] . '</h3>';
    ...
    echo '<img class="image" src="images/'.$value['bd_photo'].'">';
    ...
    echo '<p>tarif: ' . $value['bd_prix'] . ' euro </p>';
    echo '<p class="page">' . $value['bd_nb_page'] . ' pages </p>';
    echo '<p>Résumé: ' . $value['bd_resume'] . ' </p>';
    echo '<p class="auteur"> de ' . $value['auteur_nom'] . '</p>';
    echo '</div>';
}

vous pouvez maintenant tester votre page 'listing.php' , et vous devez observer l'affichage de toutes vos données y compris la photo. Vérifiez aussi l'affichage en version mobile.

votre page listing est maintenant opérationnelle, vous pouvez la peaufiner graphiquement.

🐛
http://149.91.83.164/lectio/p-R213-developpement-web_cm-02.html#1