Appearance
đ TP 05 - Manipulation de PDO en PHP â
đŻ Objectifs â
â Comprendre et utiliser PDO pour interagir avec une base de donnĂ©es MySQL.
â Savoir se connecter Ă une base de donnĂ©es avec PDO.
â Ătre capable de rĂ©cupĂ©rer des donnĂ©es et de les afficher.
â Apprendre Ă ajouter et supprimer des Ă©lĂ©ments dans une table.
â En bonus : Modifier un Ă©lĂ©ment existant.
đ§ Exercice 1 : PrĂ©paration de la base de donnĂ©es â
Avant de commencer, nous devons créer une base de données. Pour cette partie il va falloir utiliser le SGBDR MySql
et l'administrer via phpMyAdmin
.
Pour lancer MySql
c'est trĂšs simple, il faut retourner sur Xampp et cliquer sur le bouton start :
Une fois lancé, vous pouvez cliquer sur le bouton juste à cÎté : Admin
Cela vous redirige vers l'interface de phpMyAdmin
.
Il ne vous reste plus qu'Ă cliquer sur l'onglet SQL
et d'exécuter le script ci-dessous qui va vous permettre de créer une base de données slam_tp1
, une table produits
, et d'y insérer 3 produits :
sql
-- Création de la base de données slam_tp1
CREATE DATABASE slam_tp1;
USE slam_tp1;
-- Création de la table produits
CREATE TABLE produits (
id INT PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(255) NOT NULL,
prix DECIMAL(10,2) NOT NULL
);
-- Ajout des différents produits dans la base de données
INSERT INTO produits (nom, prix) VALUES
('Ordinateur', 799.99),
('Souris', 29.99),
('Clavier', 49.99);
DÚs que vous avez créé votre nouvelle base de données, vous pouvez passer à la suite.
đ§ Exercice 2 : Connexion Ă la base de donnĂ©es avec PDO â
- Créez un fichier
config.php
qui contiendra les informations de connexion. - Dans ce fichier, utilisez PDO pour Ă©tablir la connexion.
- Affichez un message en cas d'erreur.
âčïž Aide
On oublie pas de changer leNomDeMaDb
avec le nom de la base de données que vous voulez utilser.
php
try {
$conn = new PDO('mysql:host=localhost;dbname=leNomDeMaDb', $user, $password);
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
đ§ Exercice 3 : Affichage des Ă©lĂ©ments de la base de donnĂ©es â
- Créez un fichier
index.php
. - Dans ce fichier :
- Incluez
config.php
pour utiliser la connexion PDO. - RĂ©cupĂ©rez tous les produits de la table produits avec une requĂȘte SQL (
SELECT * FROM produits
). - Affichez ces produits sous forme de liste ou de tableau HTML.
- Incluez
đ Exemple de sortie attendue :
ID | Nom | Prix (âŹ) |
---|---|---|
1 | Ordinateur | 799.99 |
2 | Souris | 29.99 |
3 | Clavier | 49.99 |
âčïž Aide
Pour récupérer tous les produits dans un tableau associatif
php
$stmt = $pdo->query("SELECT * FROM produits");
$produits = $stmt->fetchAll(PDO::FETCH_ASSOC);
đ§ Exercice 4 : Ajout dâun nouvel Ă©lĂ©ment dans la base de donnĂ©es â
- Créez un fichier
ajout.php
. - Ajoutez un formulaire avec :
- Un champ texte pour le nom du produit.
- Un champ nombre pour le prix.
- Un bouton "Ajouter".
- Lorsque lâutilisateur valide le formulaire :
- Récupérez les données envoyées avec
$_POST
. - InsĂ©rez ces donnĂ©es dans la base avec une requĂȘte prĂ©parĂ©e (
INSERT INTO produits
). - Redirigez lâutilisateur vers
index.php
avecheader("Location: index.php")
.
- Récupérez les données envoyées avec
âčïž Aide
Pour rappel, pour faire une requĂȘte prĂ©parĂ©e, il faut utiliser prepare
, puis bindParam
php
// PrĂ©paration de la requĂȘte
$stmt = $conn->prepare("INSERT INTO etudiants (nom, prénom) VALUES (:nom, :prénom)");
// Lier les paramĂštres
$nom = "Dupont";
$prénom = "Thomas";
$stmt->bindParam(':nom', $nom);
$stmt->bindParam(':prénom', $prénom);
// ExĂ©cuter la requĂȘte
$stmt->execute();
đ§ Exercice 5 : Suppression dâun Ă©lĂ©ment â
- Ajoutez un lien "Supprimer" à cÎté de chaque produit dans
index.php
. - Ce lien doit pointer vers
supprimer.php?id=ID_PRODUIT
. - Dans
supprimer.php
:- VĂ©rifiez si un
id
est passĂ© en paramĂštre. - ExĂ©cutez une requĂȘte SQL pour supprimer lâĂ©lĂ©ment (
DELETE FROM produits WHERE id = ?
). - Redirigez lâutilisateur vers
index.php
.
- VĂ©rifiez si un
đ Bonus : Modification dâun Ă©lĂ©ment â
- Ajoutez un lien "Modifier" à cÎté de chaque produit, qui envoie vers
modifier.php?id=ID_PRODUIT
. - Dans
modifier.php
:- Affichez un formulaire pré-rempli avec les informations actuelles du produit.
- Lorsquâon valide, mettez Ă jour lâĂ©lĂ©ment dans la base (
UPDATE produits SET nom=?, prix=? WHERE id=?
). - Redirigez lâutilisateur vers
index.php
.
TIP
Pour modifier les donnĂ©es, on utilise le mĂȘme fonctionnement que pour ajouter des donnĂ©es. On prĂ©pare notre requĂȘte puis on utilise bindParam