Récupération de donnée en POO (fonction hydrate et construct)
Bonjour à tous,
présentement, j'essaye de créer une classe qui permettra d'afficher les données de ma base de donnée en POO. Par contre, je n'arrive pas à récupérer les données de ma base et je ne comprend pas pourquoi...
je débute en PHP et surtout en POO...si quelqu'un a une solution se serait grandement apprécié
voici mon code:
l'appel à la connexion à ma base de donnée est complètement à la fin.
Merci pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| <?php
class Personnage{
private $_id;
private $_nom;
private $_forceperso;
private $_degats;
private $_niveau;
private $_experience;
public function __construct(array $donnees){
$this->hydrate($donnees);
}
public function hydrate(array $donnees){
foreach ($donnees as $key => $value){
// On récupère le nom du setter correspondant à l'attribut.
$method = 'set'.ucfirst($key);
// Si le setter correspondant existe.
if (method_exists($this, $method)){
// On appelle le setter.
$this->$method($value);
}
}
}
public function id(){
return $this->_id;
}
public function nom(){
return $this->_nom;
}
public function forceperso(){
return $this->_forceperso;
}
public function degats(){
return $this->_degats;
}
public function niveau(){
return $this->_niveau;
}
public function experience(){
return $this->_experience;
}
public function setId($id){
$id = int($id);
if ($id > 1){
$this->_id = $id;
}
}
public function setNom($nom){
if(is_string($nom)){
$this->_nom = $nom;
}
}
public function setForceperso($forceperso){
$forceperso = int($forceperso);
if($forceperso >= 1 AND $forceperso <= 100){
$this->_forceperso = $forceperso;
}
}
public function setDegats($degats){
$degats = int($degats);
if ($degats >= 1 AND $degats <= 100){
$this->_degats = $degats;
}
}
public function setNiveau($niveau){
$niveau = int($niveau);
if ($niveau >= 1 AND $niveau <= 100){
$this->_niveau = $niveau;
}
}
public function setExperience($experience){
$experience = int($experience);
if ($experience >= 1 AND $experience <= 100){
$this->_experience = $experience;
}
}
}
?>
<?php
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$request = $bdd->query('SELECT * FROM personnages');
while ($donnees = $request->fetch(PDO::FETCH_ASSOC)){
// Chaque entrée sera récupérée et placée dans un array.
// On passe les données (stockées dans un tableau) concernant le personnage au constructeur de la classe.
// On admet que le constructeur de la classe appelle chaque setter pour assigner les valeurs qu'on lui a données aux attributs correspondants.
$perso = new Personnage($donnees);
echo $perso->forceperso();
}
?> |