Programmation et Base de Données - Exercice Php-MySql - Page 1
Programmation et Base de données
Exercices sur la Partie Php - MySql
Auteur : E. Thirion - Dernière mise à jour : 01/08/2015
Extrait du site : http://cours.thirion.free.fr
Liens utiles:
Voir le cours associé à ces exercices
Installation des dossiers et logiciels nécessaires .
Conditions d'accès au téléchargement .
Voir tous les cours du même auteur .
Corrigés
Les corrigés des exercices suivant se trouvent dans le dossier Corrige-ProgBD accessible par
téléchargement.
Exercice 1 : Sélection d'horaires
Connaissance SQL nécessaires: requête select de base. Voir cours I sur les bases de données.
Objectif
On veut pouvoir sélectionner les horaires dont la ville de départ est fixée et dont l'heure de départ ne
dépasse pas une certaine heure maximale donnée.
Les données sont saisie à l'aide d'un formulaire que vous pouvez visualiser en cliquant sur le lien Votre
Solution, en-dessous de l'intitulé Sélection d'horaire, dans la partie Tests Php du menu.
On souhaiterait que lorsque l'on clique sur le bouton Générer Requete, la requête de sélection s'affiche
dans la zone de texte, mais ne s'exécute pas.
Lorsque l'on clique sur le bouton Exécuter Requete, la requête devra s'exécuter et son résultat devra
s'afficher sous le formulaire.
Le code php du formulaire est contenu dans le fichier Etudiant/FormulaireHoraires.php. Mais pour faire
cet exercice vous n'avez besoin d'aucune connaissance sur le traitement des formulaires en Php. Vous
pouvez donc totalement ignorer le code du formulaire. Par contre, il vous faudra écrire deux fonctions :
GenererRequeteA($v,$h) : retourne la requête sous la forme d'une chaine de caractères. $v
représente la ville de départ et $h l'heure de départ maximale.
ExecuterEtAfficher ($Requete) : exécute la requête et affiche la table résultat.
Les entêtes de ces deux fonctions se trouvent dans le fichier Etudiant/Includes-Formulaire.php. Ecrivez votre
code à l'endroit indiqué dans ce fichier. Ne modifiez pas le code source du formulaire !
Page 1
Programmation et Base de Données - Exercice Php-MySql - Page 2
Exercice 2 - Gestion des Passagers
Connaissance SQL nécessaires: requêtes de modification d'une base de donnée. Voir cours II.
Objectif
On voudrait ajouter une table de passagers à la base BDVols en utilisant le formulaire que vous pouvez
visualiser en cliquant sur le lien Votre Solution dans la partie TestsPHP du menu.
Un passager est décrit par son numéro, son nom et son prénom. Ces attributs seront respectivement
représentés par :
un champ NumeroP de type INT en numérotation automatique.
un champ Nom de type VARCHAR(20).
un champ Prenom de type VARCHAR(20).
A chaque bouton du formulaire correspond une fonction particulière dans le fichier Etudiant/Includes-
SQL.php dont vous devrez écrire le code.
L'affichage de la table des passager est déjà réalisé. Pour que l'affichage fonctionne correctement votre
table doit impérativement s'appeler Passagers.
D'autre part, pour vous faciliter les tests, vous pouvez utiliser le bouton Remplir qui permet de remplir la
table des passagers à partir d'un fichier de nom et prénoms existant (le fichier Etudiant/Passagers.txt).
1) Le bouton CreerT : création de la table
Un clic sur ce bouton provoque l'appel de la fonction CreerTablePassager. Complètez le code de cette
fonction de manière à ce que ce clic provoque la création de la table Passagers.
2) Le bouton SupprT : suppression de la table
Un clic sur ce bouton provoque l'appel de la fonction SupprimerTablePassager. Complètez le code de cette
fonction de manière à ce que ce clic provoque la suppression de la table Passagers.
3) Le bouton Ajouter : adjonction d'un passager
Un clic sur ce bouton provoque l'appel de la fonction AjouterPassager ($n,$p) avec $n et $p contenant
respectivement le nom et le prenom saisis par l'utilisateur dans les zones de texte prévues à cet effet
(Nouveau nom et Nouveau prénom).
Complètez le code de cette fonction de manière à ce que ce clic provoque l'adjonction d'un nouveau
passager de nom $n et de prénom $p à la table Passagers.
Attention : pour que ce bouton fonctionne le nom et le prénom doivent être saisies dans les champs de la
colonne nouveau.
4) Le bouton Suppr : suppression d'un passager
Un clic sur ce bouton provoque l'appel de la fonction SupprimerPassager($n,$p) avec $n et $p contenant
respectivement le nom et le prenom saisis par l'utilisateur. Complètez le code de cette fonction de manière à
ce que ce clic provoque la suppression du passager de nom $n et de prénom $p de la table Passagers.
Attention : pour que ce bouton fonctionne le nom et le prénom doivent être saisies dans les champs de la
colonne ancien.
Page 2
Programmation et Base de Données - Exercice Php-MySql - Page 3
5) Le bouton Vider : suppressions de tous les passagers
Un clic sur ce bouton provoque l'appel de la fonction ViderTablePassager. Complètez le code de cette
fonction de manière à ce que ce clic provoque la suppression de tous les enregistrements de la table
Passagers.
6) Le bouton ModifN : modification de nom
Un clic sur ce bouton provoque l'appel de la fonction ModifierNom($NomA,$PreA,$NomN) avec $NomA et
$PreA contenant respectivement l'ancien nom et l'ancien prenom et $NomN, le nouveau nom. Complètez le
code de cette fonction de manière à ce que ce clic provoque le remplacement du nom du passager de nom
$NomA et de prénom $PreA par le nom $NomN.
7) Le bouton ModifP : modification de prénom
Un clic sur ce bouton provoque l'appel de la fonction ModifierPrenom($NomA,$PreA,$PreN) avec $NomA
et $PreA contenant respectivement l'ancien nom et l'ancien prenom et $PreN, le nouveau prénom.
Complètez le code de cette fonction de manière à ce que ce clic provoque le remplacement du prénom du
passager de nom $NomA et de prénom $PreA par le prénom $PreN.
8) Le bouton ModifNum : modification du numéro
Un clic sur ce bouton provoque l'appel de la fonction ModifierNumero($NumA,$NumN) avec $NumA et
$NumN contenant respectivement l'ancien numéro et le nouveau numéro. Complètez le code de cette
fonction de manière à ce que ce clic provoque le remplacement du numéro du passager de numéro $NumA
par le numéro $NumN.
Exercice 3 - Gestion des réservations
Connaissance SQL nécessaires: requêtes de modification d'une base de donnée, vues et contraintes
d'intégrité. Voir cours II sur les bases de données.
Objectif
On voudrait à présent pouvoir réserver un vol pour un passager donné en utilisant le formulaire que vous
pouvez visualiser en cliquant sur le lien Votre Solution de la partie Tests Php du menu.
Une réservation est représentée par le numéro du passager qui a reservé et le numéro du vol qu'il a réservé.
Ces attributs seront respectivement représentés par :
un champ Passager de type INT.
un champ Vol de type INT.
Chaque bouton du formulaire correspond à une fonction particulière dans le fichier Etudiant/Includes-
SQL.php dont vous devrez écrire le code.
Attention: pour pouvoir faire fonctionner ce formulaire, la table des passagers doit exister et contenir des
données.
1) Le bouton Creer Table
Un clic sur ce bouton provoque l'appel de la fonction CreerTableReservation. Complètez le code de cette
fonction de manière à ce que ce clic provoque la création de la table Reservations en format InnoDB.
Vous constaterez que l'affichage de la table Réservation figure déjà dans la fonction Reserver. Il vous
suffira donc d'écrire la requête permettant la création de la table Reservations.
Si cette requête est écrite correctement, la table suivante devrait s'afficher sous le formulaire:
Page 3
Programmation et Base de Données - Exercice Php-MySql - Page 4
Passager Vol
2) Le bouton Suppr Table
Un clic sur ce bouton provoque l'appel de la fonction SupprimerTableReservation. Complètez le code de
cette fonction de manière à ce que ce clic provoque la suppression de la table Reservations.
3) Le bouton Reserver
Un clic sur ce bouton doit provoquer (via la fonction Reserver ($p,$v)) une réservation du vol $v pour le
passager $p, en supposant que $v et $p sont les numéros indiqués dans les champs de texte du formulaire.
Vous constaterez que l'affichage de la table Réservation figure déjà dans la fonction Reserver. Il vous
suffira donc d'écrire la requête ajoutant une entrée dans la table Réservation.
4) Le bouton Annuler
L'effet de ce bouton dépend des deux cases à cocher dont l'état coché/non coché est représenté par deux
booléen $arv (dans colonne Vol du formulaire )et $arp (colonne Passager).
Dans tous les cas de figure la fonction appelée est AnnulerReservations($p,$v,$arp,$arv).
Premier cas : annulation d'une réservation particulière
Pour cela les deux case à cocher doivent être cochées. Dans ce cas $arv et $arp seront vrais. Le bouton
Annuler provoque uniquement l'annulation de la réservation du vol $v pour le passager $p.
Deuxième cas : annulation de toutes les réservations d'un passager
Pour annuler toutes les servations d'un passager, seule la case à cocher se trouvant dans la colonne
Passager doit être cochée.
Dans ce cas $arv sera faux et $arp sera vrai. Le bouton Annuler provoque l'annulation de toutes les
réservations du passager $p.
Troisième cas : annulation de toutes les réservations d'un vol
Pour annuler toutes les réservations d'un vol seule la case à cocher se trouvant dans la colonne Vol doit être
cochée.
Dans ce cas $arp sera faux et $arv sera vrai. Le bouton Annuler provoque l'annulation de toutes les
réservations du vol $v.
Page 4
Programmation et Base de Données - Exercice Php-MySql - Page 5
Quatrième cas : annulation de toutes les réservations
C'est lorsqu'aucune des deux cases à cocher n'est cochée.
5) Affichage des réservations
On souhaiterait afficher les réservation de la manière suivante:
NP Nom Prenom NV Depart Arrivee Jour HD HA
1 Katie Holmes 11 Paris Strasbourg 2001-09-04 10 11
1 Katie Holmes 34 Strasbourg Paris 2001-09-05 8 9
6 Courtney Cox 11 Paris Strasbourg 2001-09-04 10 11
7 Jennifer Lopez 34 Strasbourg Paris 2001-09-05 8 9
11 Marilyn Monroe 11 Paris Strasbourg 2001-09-04 10 11
Pour cela, on utilisera une vue nommée VueReservations possédant exactement les colonnes suivantes:
NP: Numéro du passager.
Nom: Nom du passager.
Prenom: Prénom du passager.
NV: Numéro du vol.
Départ: Ville de départ du vol.
Arrivée: Ville d'arrivée du vol.
Jour: Date du vol.
HD: Heure de départ du vol.
HA: Heure de d'arrivée du vol.
5-A) Gestion des boutons
Cinq boutons du formulaire sont associés à la visualisation des réservations:
Creer Vue: créé et affiche la vue VueReservations.
Fonction associée à complèter: CreerVueReservation.
Suppr Vue: supprime la vue VueReservations.
Fonction associée à complèter: SupprimerVueReservation.
Reservations: affiche toutes les réservations. Le code associé à ce bouton est déjà écrit. Il ne fait
qu'afficher le contenu de la vue VueReservations.
Vols: affiche toute les réservations du passager dont le numéro figure dans le formulaire.
Fonction associée à complèter: AfficherVolDuPassager($p).
Passagers: affiche tous les passagers ayant réservé une réservation pour le vol dont le numéro
figure dans le formulaire.
Fonction associée à complèter: AfficherPassagersDuVol($v).
5-B) Test: propagation des mises à jours
Vérifiez que toutes les modifications apportées au réservations, aux vols ou aux passagers sont
automatiquement propagées à la vues. Par exemple:
Ajoutez une réservation et vérifier qu'elle apparait dans la vue.
Supprimez une réservation et vérifier qu'elle apparait dans la vue.
Modifiez le nom ou le prénom d'un passager et vérifiez qu'il est également modifié dans la vue.
Page 5
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !