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 classePersonne
. Travail à faire
Dans ce TP, nous allons reprendre les travaux de TP précédents :- Terminer votre TP9 précédent.
- Dans un un nouveau repertoire TP10, reprendre votre travail du TP 9, en utilisant maintenant les requêtes préparées.
- Ensuite, dans le ficher
Lib.php
, nous alons reprendre la classePersonne
créée précédemment :- Attributs :
string $nom
etint $age
: Nom et âge de la personne. // Faitint $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 renvoietrue
si les données sont enregistrées dans la base etfalse
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 renvoietrue
si les données sont supprimées de la base etfalse
sinon. - Un destructeur
__destruct
pour libérer la connexion à la base de données : $this->connexion = null;
- Un constructeur
- Attributs :
- 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. - Utiliser la méthode
- 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()
etunserialize()
.
Remarque :
Les fonctionsserialize()
etunserialize()
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.
- Un attribut privé
Optionnel : Idées d'amélioration
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é.