Objet impossible

helloworld9 -  
jordane45 Messages postés 30426 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

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Avec quel code ?
    0
    1. 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
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. helloworld9
       
      Ah d'accord mais je pensai créer un tableau reprenant tout les users ? Comment faire alors ?
      0
    2. 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
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > 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
    4. 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
    5. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      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