Exemple de page générée par le script du document listePdt.php

publicité
TP2 : 3 PAGES
ATELIER SITE WEB
A/ Critique du site actuel
Monsieur Blaise est content de votre travail… quoique… Le catalogue évolue (changements de prix,
nouvelle gamme, …) en permanence et le personnel du service commercial passe beaucoup de temps
à mettre à jour les pages HTML du site Web.
Ceci semble être une perte de temps inutile, d'autant plus que l'ensemble du catalogue est répertorié
dans une base de données MySQL : il suffirait que les informations de cette base soient publiées sur
le Web !
Monsieur Blaise a lu un article consacré à PHP dans une revue… Devinez la suite…
B/ Base de données Lafleur
Le schéma de la base de données « lafleur » est reproduit ci-dessous :
Remarques :
-
Le script SQL de la base de données « lafleur » se trouve dans le fichier texte lafleur.txt à
charger.
La table « categorie » répertorie les différents types de produits (bulbes, plantes à massif,
rosiers).
Le champ « pdt_image » contient le nom du fichier jpeg correspondant au produit.
Les images se trouvent dans le fichier ZIP Images.zip
Cette base de données va être utilisée dans les scripts PHP via le middleware MySQL.
C/ Principe de fonctionnement du site
Remarque sur l'organisation
La nouvelle version du site sera composée de :
-
Pages HTML stockées dans le répertoire C:\Program Files\EasyPHP\www\Lafleur.
Documents contenant des scripts PHP stockés dans le répertoire :
C:\Program Files\EasyPHP\www\Lafleur\version2.
Page 1 sur 3
Page d'accueil
La page d'accueil ne change quasiment pas. Seule la référence à menu.htm doit être remplacée par une
référence au document PHP : C:\Program Files\EasyPHP\www\Lafleur\version2\menu.php.
La page logo.htm n'est pas modifiée.
Page générée par le script de menu.php
Exemple de page générée par le script du document listePdt.php
Nombre de produits affiché : 3
Cette page est affichée dans le cadre de droite (nommé page) après un clic sur le lien "Plantes à
massif".
Page 2 sur 3
D/ Principe de la solution
Les problèmes à résoudre sont les suivants :
-
Affichage par le script du document menu.php des libellés de catégories provenant de la
base de données sous la forme d'un lien HTML.
Transmission de la catégorie choisie (cliquée en fait) au script suivant (listePdt.php) chargé
d'afficher les produits dans le cadre de droite.
Affichage par le script du document listePdt.php des informations sur les produits d'une
catégorie provenant de la base de données sous la forme d'un tableau html.
Les problèmes d'affichage des informations en provenance de la base de données sont facilement
résolus par l'utilisation des fonctions PHP rappelées ci-dessous :





$connexion=mysql_connect(nomserveur, nomlogin, password). Cette fonction permet
de réaliser la connexion à une base MySQL. Elle a 3 paramètres : nomserveur est le nom du
serveur hôte ou son adresse IP (exemple : localhost ou 127.0.0.1 pour le serveur local),
nomlogin est le nom du login de l’utilisateur qui se connecte (exemple : root pour
l’administrateur), password est le mot de passe de cet utilisateur (exemple : par défaut, il n’y
en a pas pour le root) . Elle retourne un identifiant de connexion ou false en cas d'échec
stockée dans une variable $connexion.
mysql_select_db(nombase) permet de sélectionner le nom de la base de données de
Lafleur. Le paramètre nombase est le nom de la base mySQL sélectionnée.
$requete=mysql_query(requête SQL). Cette fonction exécute la requête SQL passée en
paramètre sous la forme d'une chaîne de caractères. Elle retourne false en cas d'erreur, un
identifiant de résultat MySQL en cas de succès stocké dans une variable $requete.
$ligne=mysql_fetch_object($requete). Lecture d'un enregistrement dans le jeu
d'enregistrements résultat $requete. Cet enregistrement est placé dans la variable $ligne.
Chaque champ de cet enregistrement est lu de la manière suivante : $ligne->nomchamp.
mysql_close($connexion) : fermeture de la connexion $connexion utilisé dans la fonction
mysql_connect.
En ce qui concerne la transmission de la catégorie "cliquée" vers listePdt.php, on peut envisager de
mettre en œuvre la solution PHP suivante dans le document menu.php :
1. Exécuter la requête SQL avec la fonction PHP mysql_query qui stocke dans une variable
$requete tous les enregistrements de la table « categorie » de la base de données :
$requete = mysql_query ("select * from categorie;") ;
2. Parcourir chaque enregistrement de la table « categorie », stocké dans la variable $requete,
et le stocker dans une variable $ligne. Puis générer un lien pour la catégorie repérée dans cet
enregistrement vers le cadre de droite page. Le code de cette catégorie se trouve dans
$ligne->cat_code (la valeur de l’index du lien) et son libellé dans $ligne->cat_libelle (le texte
du lien) :
while ($ligne=mysql_fetch_object ($requete))
{
echo "<a href=listePdt.php?categorie=$ligne->cat_code target=page> ;
echo "<u>$ligne->cat_libelle</u></a><br>" ;
}
TRAVAIL A FAIRE


Créez une base de données MySQL nommée "lafleur". Chargez le script SQL se trouvant dans
le fichier texte lafleur.txt.
Réalisez cette seconde version du site de la société Lafleur.
Page 3 sur 3
Téléchargement