Objet impossible

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. Modérateur
    Avec quel code ?
    1. 		#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;
      	}
  2. Contributeur
    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);
    1. Ah d'accord mais je pensai créer un tableau reprenant tout les users ? Comment faire alors ?
    2. 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)
    3. Contributeur
      @helloworld9es-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)
    4. 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
    5. Modérateur
      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 ?