Objet impossible

helloworld9 -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'aimerai afficher un select d'une base de données en html, pour cela j'ai créer un objet utilisateur. Je créer un tableau d'objets et je le parcours avec une boucle for.

J'ai le message suivant : Cannot use object of type User as array





2 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Avec quel code ?
0
helloworld9
 
		#select all users in a table
		$tabUsers = Db::getInstance()->select_all_users();
		var_dump($tabUsers);


			<tbody>
				<?php for ($i = 0; count($tabUsers); $i++) { ?>
				<tr>
					<td><?php echo $tabUsers[$i]->get_pseudo() ?></td>
					<td><?php echo $tabUsers[$i]->get_mdp() ?></td>
					<td><?php echo $tabUsers[$i]->get_photo() ?></td>
				</tr>
				<?php } ?>




	public function select_all_users(){
		$query = "SELECT * FROM users";
		$result = $this->_db->query($query);

		$user = null;
		#verifier si le resultat n'est pas null ! 
		if ($result->rowcount() == null){
			return $user;
		}else{
			while ($row = $result->fetch()) {
				$user = new User($row->pseudo, $row->mdp, $row->photo);
			}
		}
		return $user;
	}
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonsoir, cela me semble clair:
en gros, tu fais:
$user = new User($row->pseudo, $row->mdp, $row->photo);
echo $user[$i];

Vois-tu pourquoi cela ne fonctionne pas?

moi je tenterais plutôt:
$user = array();  // au lieu de $user = null;
$user[] = new User($row->pseudo, $row->mdp, $row->photo);
0
helloworld9
 
Ah d'accord mais je pensai créer un tableau reprenant tout les users ? Comment faire alors ?
0
helloworld9
 
Cela fonctionne merci ! par contre je comprend pas pourquoi ils me mettent undifined offset et call to a member function get_pseudo() on a non-object (je débute en php)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > helloworld9
 
es-tu certain d'avoir partagé le code complet de ton programme, et le numéro de la ligne où tu as l'erreur?
(je vois que tu débutes aussi dans le forum, tu ne nous donnes aucune information utile permettant de te donner un coup de main)
0
helloworld9
 
Oui et j'ai l'erreur au niveau de la ligne 5 dans le code html. Si je la retire j'ai la meme erreur avec get_mdp(), pourtant le tableau s'affiche correctement mais l'erreur perriste
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Te rends-tu compte que tu ne nous a partagé qu'une partie de ton code de manière fragmentée.
Comment veux-tu que l'on puisse savoir de quelle ligne tu parles ?
0