Afficher valeur depuis tableau associatif directement depuis une classe ?
Bonjour à tous
Je n'arrive pas à accéder à une valeur lue dans un tableau associatif venant d'un résultat de requête depuis une classe :
La requête retourne les bons résultats mais dans "index.php" la ligne $petsGenre->petGenre (ligne 9) envoie l'erreur "undefined property"...
Sauf erreur de ma part, l'on peut accéder aux valeurs d'un tableau associatif directement depuis la classe ... Si je déclare à null une variable "petGenre" dans sa classe respective il n'y a plus d'erreur mais la valeur n'est pas affichée dans le "echo" de la page index.php...
D'autre part, peut on factoriser et changer le mode de PDO fetch suivant les différents types de requêtes dans la fonction /Model.php/read() ?
Merci d'avance pour vos suggestions
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<body>
<div class="container">
<h1>Interface gestion </h1>
<h3>Categories et sous-categories d'animaux</h3>
<p>
<?php
//$petsGenre->id = 3;
$petsGenre->read("petgenre");
echo $petsGenre->petgenre
?>
</p>
</div>
</body> |
Model.php
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
|
//Fonction lecture données d'une table
public $id;
public $table;
public $idName;
public function read($fields = null)
{
$bdd = self::getBdd();
if ($fields == null) {
$fields = "*";
}
//Requêtes différentes si aucun identifiant spécifié
if ($this->id == null) {
$sql = ("SELECT $fields FROM " . $this->table);
echo 'Toute la table';
} else {
$sql = ("SELECT $fields FROM " . $this->table . " WHERE " . $this->idName . " = " . $this->id);
echo 'Un seul résultat';
}
$data = $bdd->prepare($sql);
$data->execute();
$data = $data->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>', print_r($data), '<pre>';
foreach ($data as $k => $v) {
$this->$k = $v;
}
} |
Classe "PetsGenre.php"
Code:
1 2 3 4 5 6 7
|
<?php
class PetsGenres extends Model
{
var $table = "petsGenres";
var $idName = "idGenre";
} |