CRUD 2
Introduction à la programmation orientée objet en PHP
Relier notre instance de classe à la classe manager
Notre CRUD (Create, Read, Update, Delete) enregistre maintenant directement la nouvelle instance de classe
Le fichier index.php<!DOCTYPE html>
<html lang="fr">
<head>
<title>POO PHP</title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/mesStyles.css">
</head>
<body>
<h1>Inscription</h1>
<?php
require 'classes/utilisateur.class.php';
require 'classes/admin.class.php';
require 'classes/abonne.class.php';
require 'config/login.php';
require 'classes/manager.class.php';
$Abonne1 = new Abonne('Papy44', 123, 'Nord');
$Manager = new Manager($bdd);
$Manager -> createInscrits($Abonne1);
$Manager -> readInscrits();
?>
</body>
</html>
⚠ les trois getters getNom(), getPass() et getRegion() doivent avoir un return et nom pas un echo. Sinon cela affiche les infos lors de la création
Autre solution
Une technique beaucoup plus simple (mais extrêmement dangereuse) que celle présentée ici est de récupérer les trois infos directement dans la méthode createInscrits depuis un formulaire avec des $_POST[] comme ceci :
$Manager -> createInscrits($_POST['nom'], $_POST['pass'], $_POST['region']);
<?php
class Manager {
private $_db; // Instance de PDO
public function __construct($bdd) {
$this->setDb($bdd);
}
public function setDb($bdd) {
$this->_db = $bdd;
}
// Méthode createInscrits() non sécurisée - voir en bas de page
public function createInscrits($Abonne) {
$requete = 'INSERT INTO inscrits(id_inscrits, nom_inscrits, pass_inscrits, region_inscrits)
VALUES(null,"'.$Abonne ->getNom().'","'.$Abonne ->getPass().'","'.$Abonne ->getRegion().'")';
$resultat = $this -> _db -> prepare($requete);
$resultat -> execute();
}
public function readInscrits() {
$requete = 'SELECT id_inscrits, nom_inscrits FROM inscrits ORDER BY id_inscrits DESC';
$resultat = $this -> _db -> query($requete);
echo '<ul>';
while($ligne= $resultat->fetch(PDO::FETCH_ASSOC)){
echo '<li>N° '.$ligne['id_inscrits'].' : '.ucfirst($ligne['nom_inscrits']).'</li>';
}
echo '</ul>';
}
public function updateInscrits($new_nom, $id) {
$requete = "UPDATE inscrits SET nom_inscrits = '".$new_nom."' WHERE id_inscrits='".$id."'";
$resultat = $this -> _db -> prepare($requete);
$resultat -> execute();
}
public function deleteInscrits($id) {
$requete = 'DELETE FROM inscrits WHERE id_inscrits ='.$id;
$this -> _db -> query($requete);
}
}