Skip to content

📝 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 :

mysqlStart

Une fois lancé, vous pouvez cliquer sur le bouton juste à cÎté : Admin

Cela vous redirige vers l'interface de phpMyAdmin.

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);

sqlinsert

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 ​

  1. Créez un fichier config.php qui contiendra les informations de connexion.
  2. Dans ce fichier, utilisez PDO pour Ă©tablir la connexion.
  3. 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 ​

  1. Créez un fichier index.php.
  2. 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.

👉 Exemple de sortie attendue :

IDNomPrix (€)
1Ordinateur799.99
2Souris29.99
3Clavier49.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 ​

  1. Créez un fichier ajout.php.
  2. Ajoutez un formulaire avec :
    • Un champ texte pour le nom du produit.
    • Un champ nombre pour le prix.
    • Un bouton "Ajouter".
  3. 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 avec header("Location: index.php").
â„č 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 ​

  1. Ajoutez un lien "Supprimer" à cÎté de chaque produit dans index.php.
  2. Ce lien doit pointer vers supprimer.php?id=ID_PRODUIT.
  3. 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.

🎁 Bonus : Modification d’un Ă©lĂ©ment ​

  1. Ajoutez un lien "Modifier" à cÎté de chaque produit, qui envoie vers modifier.php?id=ID_PRODUIT.
  2. 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