Fatal error
Résolu/Fermé
stampia02
Messages postés
95
Date d'inscription
samedi 30 juillet 2011
Statut
Membre
Dernière intervention
13 mai 2017
-
24 mars 2017 à 00:43
stampia02 Messages postés 95 Date d'inscription samedi 30 juillet 2011 Statut Membre Dernière intervention 13 mai 2017 - 26 mars 2017 à 11:34
stampia02 Messages postés 95 Date d'inscription samedi 30 juillet 2011 Statut Membre Dernière intervention 13 mai 2017 - 26 mars 2017 à 11:34
2 réponses
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
25 mars 2017 à 23:10
25 mars 2017 à 23:10
Donc ce sont les attributs de ta class Livre ..
qui sont en PRIVATE ...
Il te faut un getter pour les récupérer dans ce cas.
qui sont en PRIVATE ...
Il te faut un getter pour les récupérer dans ce cas.
class Livre{ private $_no; private $_titre; private $_auteur; public function __construct($no, $titre, $auteur){ $this->_no = $no; $this->_titre = $titre; $this->_auteur = $auteur; } public function get_titre(){ return $this->_titre; } public function get_auteur(){ return $this->_auteur; } //fin de la class }
<?php foreach($tabLivres as $livre) { echo '<tr> <td><span class="html">'.$livre->get_titre().'</span></td> <td>'.$livre->get_auteur().'</td> </tr>'; } ?>
jordane45
Messages postés
38430
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 février 2025
4 735
24 mars 2017 à 00:56
24 mars 2017 à 00:56
Bonjour,
Que contient ta variable $tabLivres ?
Comment est-elle initialisée (quelles lignes de code...) ?
auteur et livre.. sont sensés être des "propriétés" (des attributs ou des noms de colonnes..) ou une "méthodes" (une fonction..) ??
Si c'est, comme je le pense, des nom de colonne d'une base de données.. il ne faut pas mettre les parenthèses.....
De plus.. un foreach serait plus "beau".
Evite également d'ouvrir/fermer des balises php partout ...
Tu peux, par exemple, faire comme ceci :
Que contient ta variable $tabLivres ?
Comment est-elle initialisée (quelles lignes de code...) ?
auteur et livre.. sont sensés être des "propriétés" (des attributs ou des noms de colonnes..) ou une "méthodes" (une fonction..) ??
Si c'est, comme je le pense, des nom de colonne d'une base de données.. il ne faut pas mettre les parenthèses.....
De plus.. un foreach serait plus "beau".
Evite également d'ouvrir/fermer des balises php partout ...
Tu peux, par exemple, faire comme ceci :
<?php foreach($tabLivres as $livre) { echo '<tr> <td><span class="html">'.$livre->titre.'</span></td> <td>'.$livre->auteur.'</td> </tr>'; } ?>
stampia02
Messages postés
95
Date d'inscription
samedi 30 juillet 2011
Statut
Membre
Dernière intervention
13 mai 2017
1
24 mars 2017 à 22:06
24 mars 2017 à 22:06
Voici le reste de mon code
public function select_livres(){ require_once(MODEL . 'Livre.php'); $query = 'SELECT * FROM livres ORDER BY no DESC'; //select dans la table des livres $result = $this->_db->query($query); $tableau = array(); if ($result->rowcount() != 0 ){ while($row = $result->fetch()){ $tableau[] = new Livre($row->no,$row->titre,$row->auteur); //attribue a chaque colonnes les attribut de la classe Livre } } var_dump($tableau); return $tableau; }
public function run(){ require_once(MODEL . 'Db.php'); $tabLivres=''; $tabLivres=Db::getInstance()->select_livres(); require_once(VUES . 'livres.php'); }
class Livre{ private $_no; private $_titre; private $_auteur; public function __construct($no, $titre, $auteur){ $this->_no = $no; $this->_titre = $titre; $this->_auteur = $auteur; }
26 mars 2017 à 11:34