Objet impossible

Fermé
helloworld9 - 29 août 2017 à 19:29
jordane45 Messages postés 38150 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 avril 2024 - 30 août 2017 à 01:37
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
29 août 2017 à 19:46
Avec quel code ?
0
		#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 22744 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477
Modifié le 29 août 2017 à 20:18
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
Ah d'accord mais je pensai créer un tableau reprenant tout les users ? Comment faire alors ?
0
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 22744 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 1 mai 2024 1 477 > helloworld9
29 août 2017 à 21:32
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
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
29 août 2017 à 22:17
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