Les exercices suivants sont des exercices supplémentaires pour réviser le deuxième chapitre de cours. Ils viennent en complément du TP2 qui doit être terminé avant de faire ces exercices. Ces exercices sont optionnels mais permettent de revoir les principales notions du chapitre 2 (excepté la partie relative à la sécurité des sites Web).

Exercice 1 : Création de la base de données

Connectez-vous sur votre compte postgreSQL et exécutez ce script SQL. Ce script, une fois exécuté, crée la table personnages contenant la liste des principaux personnages de la série Simpson.

Rappels :

  • Commande pour se connecter à postgreSQL : psql -h aquabdd -d etudiants

  • Commande pour exécuter un script SQL (dans l’invite de commandes de postgreSQL) : ` \i nom_script`

Exercice 2 : Affichage des informations de tous les personnages des Simpsons

  1. Définir la fonction liste prenant en paramètre un objet PDO (connecté à la base de données) et affichant sous forme d’une liste non ordonnée les personnages de la base. Pour chaque personnage, l’affichage doit être Nom, Prenom, Age ans si la valeur associée à Age n’est pas null, et Nom, Prenom, âge non défini sinon.

    Note : La méthode utilisée pour récupérer les résultats doit être fetch.

  2. Créer un script liste.php affichant la liste des personnages.

Exercice 3 : Affichage des membres d’une même famille

  1. Définir la fonction liste_famille prenant en paramètre un objet PDO (connecté à la base de données) et un nom de famille. La fonction devra afficher la liste des personnages dont le nom de famille est celui passé en paramètre. L’affichage devra être le même que dans l’exercice précédent.

    Note : La méthode utilisée pour récupérer les résultats doit être fetchAll.

  2. Créer un script familyMembers.php affichant la liste des personnages d’une même famille dont le nom est passé dans l’url (paramètre family). Si ce paramètre n’existe pas ou si sa valeur n’est pas composée uniquement de chiffres, lettres ou underscores, alors le script affiche un message d’erreur.

Exercice 4 : Utilisation d’une classe Model

  1. Créer une classe Model (fichier Model.php) contenant un attribut privé $bd. Le constructeur (privé) créera un objet PDO connecté à la base de données. Cet objet sera stocké dans $bd. Implémenter le design pattern singleton pour la classe Model:
    • ajouter un attribut statique privé $instance initialisé à null,
    • implémenter la méthode statique publique getModel() retournant l’instance de Model stocké dans l’attribut $instance. Si ce dernier contient la valeur null, la méthode doit créer avant une instance de Model et la stocker dans $instance.
  2. Définir la méthode getFamily() prenant en paramètre un nom de famille et retournant tous les personnages de cette famille.

  3. Modifier le script familyMembers.php pour que celui-ci accède à la base de données en utilisant le modèle.

  4. Définir la méthode getFamilyNames retournant un tableau de chaînes de caractères correspondant aux différents noms de familles dans la table des personnages.

    Requête SQL :

     SELECT DISTINCT nom FROM personnages;
    
  5. Définir le script families.php. Ce script doit afficher la liste des différents noms de familles de la table personnages. Chaque nom doit être un hyperlien sur le script liste_famille.php.