Bonjour à tous,

une fois encore je me tourne vers vous pour un soucis de code, alors voilà : je m'entraîne à la poo en php cependant mes getters ne semblent pas fonctionner puisque je n'arrive pas à faire remonter les informations contenues dans ma base de données en les utilisant.

Un exemple : $personnage->nom() devrait normalement me retourner le nom de mon personnage, hors je n'obtiens rien Une personne pour m'aider svp ?

Voici la classe personnage

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
94
95
96
<?php
class Personnage {
 
	private $_id;
	private $_nom;
	private $_forcePerso;
	private $_degats;
	private $_niveau;
	private $_experience;
 
	/* Hydrater les objets
	public function hydrate(array $donnees) {
		
		foreach ($donnees as $key => $value) {
			$method = "set".ucfirst($key);
			
			if (method_exists($this, $method))
				$this->$method($value);
		}
	}*/
 
	// Les getters
 
	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;
	}
 
	// Les setters
 
	public function setId($id) {
 
		$id = (int) $id;
 
		if ($id > 0)
			$this->_id = $id;
	}
 
	public function setNom($nom) {
 
		if (ctype_alnum($nom))
			$this->_nom = $nom;
	}
 
	public function setForce($forcePerso) {
 
		$force = (int) $force;
 
		if ($force >= 1 && $force <= 100)
			$this->_force = $force;
	}
 
	public function setDegats($degats) {
 
		$degats = (int) $degats;
 
		if ($degats >= 0 && $degats <= 100)
			$this->_degats = $degats;
	}
 
	public function setNiveau($niveau) {
 
		$niveau = (int) $niveau;
 
		if ($niveau >= 0 && $niveau <= 100)
			$this->_niveau = $niveau;
	}
 
	public function setExperience($experience) {
 
		$experience = (int) $experience;
 
		if ($experience >= 1 && $experience <= 100)
			$this->_experience = $experience;
	}
}
?>

Et voici la page sur laquelle je l'appelle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html>
	<head>
		<meta charset =  utf-8>
	</head>
 
	<body>
<?php
include_once "../classes/chargementClasses.php";
 
$db = new PDO("mysql:host=localhost;dbname=jeu", "root", "");
 
$request = $db->query("SELECT nom, forcePerso FROM personnage");
 
while ($donnees = $request->fetch(PDO::FETCH_ASSOC)) {
	$perso = new Personnage($donnees);
 
	echo "nom " , $perso->nom() , "<br>" ,  $perso->forcePerso();
}
?>
 
	</body>
</html>
Je vous remercie !