Programmation Orientée Objet en PHP (B.U.T.)
  • Organisation du cours
  • FAQ
  • Découverte
    • Séance A : Introduction à la POO
    • Séance B : Concepts de la POO
    • Séance C : Encapsulation
    • Séance D : Héritage
    • Séance E : Héritage & Encapsulation
    • Séance F : Héritage multiple et interfaces
    • Exercices S3 - FC
    • Séance G : Synthèse des concepts
    • Séance H : Point d'étape
    • Séance I-J
    • Séance K
    • TP Noté
  • Ancien cas pratique
    • Description générale
    • Séance A : Structure de base
    • Séance B : Génération de formulaire en POO
    • Séance C : Traitement des formulaires pour nos livres et auteurs
    • Séance D : Utilisation d'une base de données
    • Séance E : Utilisation d'une base de données et des formulaires
    • Séance F : Utilisation d'une base de données et des formulaires
    • Séance G : Finalisation
  • PHPStorm
    • Installation de PHPStorm
Propulsé par GitBook
Sur cette page
  • Sujet
  • Terminer le TP précédent et la classe ArtisteManager
  • Amélioration de ArtisteManager
  • Travail à Faire
  1. Ancien cas pratique

Séance E : Utilisation d'une base de données et des formulaires

PrécédentSéance D : Utilisation d'une base de donnéesSuivantSéance F : Utilisation d'une base de données et des formulaires

Dernière mise à jour il y a 2 ans

Nous allons exploiter les classes des , , et

Notation

Cet exercice sera à faire valider en fin de séance obligatoirement.

  • 0, rien n'est fait

  • 1, début d'exercice, mais non fonctionnel

  • 2, TP réalisé exactement comme demandé

  • 3, TP réalisé avec quelques améliorations/optimisations

Sujet

Faire le lien entre le formulaire, le traitement et la base de données afin d'ajouter les artistes dans la base de données.

Faire également le lien avec le formulaire livre pour récupérer une liste, provenant de la base de données pour les Auteurs et les Dessinateurs.

Vous devez faire valider le bon fonctionnement en fin de séance

Terminer le TP précédent et la classe ArtisteManager

Eléments de corrections :

Le constructeur de la classe ArtisteManager :

class ArtisteManager {
  private $db;

  public function __construct ($serveur, $login, $password, $bdd)
  {
      $this->db = new PDO('mysql:host='.$serveur.';dbname='.$bdd, $login, $password);
  }
  ...
}

Le constructeur d'Artiste devient :

class Artiste {
  ...
  protected $id; //Contiendra l'Id de l'Artiste dans la base

  public function __construct ($donnees)
  {
      $this->hydrate($donnees);
  }
  ...
}

La méthode addArtiste pourrait être :

class ArtisteManager {
  ...

  public function addArtiste(Artiste $artiste) {
        $requete = 'INSERT INTO Artiste (nom, prenom, datenaissance, image, specialite) VALUES ("'.$artiste->getNom().'", "'.$artiste->getPrenom().'", "'.$artiste->getDateNaissance().'", "'.$artiste->getImage().'", "'.$artiste->getSpecialite().'")';
        $this->db->query($requete);

        return $this->db->lastInsertId(); // pour récupérer l'Id
    }
  ...
}

Amélioration de ArtisteManager

Nous allons améliorer la classe ArtisteManager en ajoutant les méthodes suivantes :

  • recupereSpecialite($specialite) : pour récupérer les Artistes selon une spécialité précise

  • recupereAuteur() : qui utilisera la méthode recupereSpecialite pour récupérer les auteurs

  • recupereDessinateur() : qui utilisera la méthode recupereSpecialite pour récupérer les dessinateurs

On pourrait aussi ajouter une méthode pour récupérer les données préformatées pour les selects.

Travail à Faire

  • Utiliser la classe ArtisteManager pour gérer le traitement et la sauvegarde du formulaire

  • Utiliser la classe ArtisteManager pour générer les listes d'Auteurs dans les livres

  • Ecrire le fichier artistes.php qui est une page qui utilise la classe ArtisteManager pour afficher tous les artistes de la base de données.

Séance 9 : Structure de base
Séance 10 : Génération de formulaire en POO
Séance 11 : Traitement des formulaires pour nos livres et auteurs
Séance 12 : Utilisation d'une base de données