CRUD : Gestion de données PHP/MySQL

Licence Informatique 2ème année

Youssef Chahir - Alexandre Niveau - Jean-Marc Lecarpentier

 

CRUD : Gestion de données PHP/MySQL

Notes de cours

Travail personnel

Objectifs

  • Application CRUD avec PHP et MySQL .
  • Se confronter à l'écriture de scripts pour un site de plusieurs pages.

Exercice 1 — Interface PHP/MySQL (Suite) #

Partie I

Le but du TP est de terminer votre architecture SCRUD commencée au TP précédent avec les fonctionnalités de base : Recherche, sélection, insertion, suppression, mise à jour des données en utilisant la classe Personne.

Travail à faire

Dans ce TP, nous allons reprendre les travaux de TP précédents :
  1. Terminer votre TP9 précédent.
  2. Dans un un nouveau repertoire TP10, reprendre votre travail du TP 9, en utilisant maintenant les requêtes préparées.
  3. Ensuite, dans le ficher Lib.php, nous alons reprendre la classe Personne créée précédemment :
    • Attributs :
      • string $nom et int $age : Nom et âge de la personne. // Fait
      • int $idP : idP de la personne
      • ?PDO $connexion; : retourner une instance de la classe PDO (connexion à la base de données).
    • Méthodes :
      • Un constructeur __construct() pour initialiser les attributs.
      • Une méthode connecter(): ?PDO pour se connecter à la base de données.
      • Une méthode __toString() pour afficher les détails d'une personne.
      • Une méthode enregistrer() pour enregistrer dans le base de données, les informations saisies via le formulaire. Elle renvoie true si les données sont enregistrées dans la base et false sinon.
      • Une méthode modifier(string $nom, int $age): bool pour modifier les données de la personne dans la base de données
      • Une méthode supprimer(): bool pour supprimer la personne. Elle renvoie true si les données sont supprimées de la base et false sinon.
      • Un destructeur __destruct pour libérer la connexion à la base de données : $this->connexion = null;
  4. Intégrer cette classe dans votre index.php :
    • Utiliser la méthode sauvegarder() pour l'insertion des données d'une personne.
    • Afficher la personne, avec ses attributs, après insertion.
    • Utiliser la méthode modifier($nouveau_nom, neouveau_$age) pour la modification.
    • Utiliser la méthode supprimer() pour la suppression de la personne.
    • Afficher la personne, avec ses attributs, après insertion.
    Optionnel : Idées d'amélioration
    • Si lors de la modification ou de la suppression d'une personne, vous voulez transmettre des instances d'objets alors vous pouvez utiliser les fonctions serialize() et unserialize().
      Remarque :
      Les fonctions serialize() et unserialize() sont généralement utilisées pour sérialiser des objets en chaînes de caractères afin de les stocker dans une base (ou un fichier) ou de les transmettre plus facilement.
    • Écrire une classe nommée Equipe avec les caractéristiques suivantes :
      • Un attribut privé $Tab_Personne, qui est un tableau contenant des objets de type Personne.
      • Une méthode publique ajouterPersonne(Personne $personne) pour ajouter une personne à l'équipe. Cette méthode prend en paramètre un objet Personne et l'ajoute au tableau $Tab_Personne.
      • Une méthode statique charger_base(): array qui retourne un tableau contenant toutes les personnes récupérées depuis la base de données.
        // Inclure la définition de la classe Personne
        require_once('Lib.php');
        
        // Utilisation de la fonction charger_base de la classe Equipe
        $liste_personnes = Equipe::charger_base();
        
        // Affichage des données des personnes
        foreach ($liste_personnes as $personne) {
            echo "ID: " . $personne->getIdP() .
                 ", Nom: " . $personne->getNom() .
                 ", Age: " . $personne->getAge() . " <br/>";
        }
        
      • Moteur de recherche: Ajouter un formulaire de recherche, écrire la requête de recherche correspondante sur un ou plusieurs attributs.

Partie II — Choix du sujet pour le projet (Pour les plus rapides)

L’énoncé du TP tilise le prétexte d'un site sur une Personne, mais pour votre devoir il faut choisir quelque chose d'autre, qu'on appellera un OBJET, qui soit différent pour chaque étudiant·e. Cela pourra être par exemple un évenement culturel, historique, un produit …

Le projet à faire consiste à développer un site web interactif permettant aux utilisateurs de consulter, d'ajouter, de mettre à jour et de supprimer des données, conformément au paradigme SCRUD (Search, Create, Read, Update, Delete) en PHP en utilisant la base de données.

La contrainte est que vos OBJETS doivent avoir au moins trois attributs de type : chaîne de caractères, numérique et autres.

Préférez un sujet original (en particulier, autre chose que votre page perso, et autre chose que les Pokémon); mais vous ne serez pas jugé·e sur le choix du sujet. Cependant, ne reprenez pas tels quels les OBJETS «Personne»,«poème», ... manipulés en cours et en TP.

Les pages de votre site doivent contenir des contenus en adéquation avec le sujet choisi, en respectant les règles de propriété intellectuelle (citer vos sources) que ce soit pour les textes ou pour les images, etc.

Travail à rendre individuellement.

Le site complet est à mettre en ligne sur votre serveur personnel, avec la page d'accueil à l’URL : https://dev-NUMETU.users.info.unicaen.fr/TW3-2024/devoir/index.php

Un fichier zip nommé NUMETU-nom-prenom.zip (sans espaces, accents ou caractères spéciaux) contenant l’ensemble du dossier devoir/ sera déposé sur ecampus.

Date limite : Mercredi 24 avril 18h. Tout retard sera pénalisé.