Comment afficher/récupérer des éléments (POO) d'un tableau

Comment afficher/récupérer des éléments (POO) d'un tableau - PHP - Programmation

Marsh Posté le 19-12-2005 à 16:07:05    

Bonjour,  
 
Je suis en train de me "prendre la tête" sur un problème qui parait simple et qui doit surement l'être.
J'aimerais savoir comment récupérer des objets (poo) d'un tableau associatif
Je m'explique:
 
Supposons une classe UserObjet avec ses getters/setters et une petite méthode d'affichage:
- getNom() , setNom($leNom)
- getPrenom(), setPrenom($lePrenom)
- display()
 
Supposons une classe UserDB qui permet de récupérer les données en base.
Je définis dans cette class une méthode getUsers() qui me retourne un tableau de d'ojets UserObjet  
 
public function getUsers(){
 $myUsersArray = new ArrayObject();
 // instanciation de la requete
 $myUser = null;
   
 $sql = new MydbSQL('localhost','base','root','');  // MydbSQL est une classe d'abstraction DB
 $sqlQuery = "SELECT * FROM `user` ";
 $sql->setQuery($sqlQuery);
 while ($sql->getNextRecord())
  {
   $myUser = new UserObjet();
   $myUser->setNom($sql->getRecord('name));
   $myUser->setPrenom($sql->getRecord('lastname'));
   
   $myUsersArray->append($myUser);
  }
 return $myUsersArray;
 }
 else throw new Exception();  
}

 
Lorsque j'appelle cette méthode dans un fichier traitement.php (par exemple), je récupère bien un tableau de users (UserObjet)  mais je ne trouve pas le moyen, pour chaque élément du tableau de préciser qu'il s'agit d'un élément de type UserObjet, et de pouvoir ainsi appeler pour chacun monUserObjet->display();
 
Avez vous des exemples ou indices pour ce genre de traitement ?
 
 
Merci
 
Did


Message édité par didleur le 19-12-2005 à 16:36:27
Reply

Marsh Posté le 19-12-2005 à 16:07:05   

Reply

Marsh Posté le 19-12-2005 à 17:22:44    

Code :
  1. foreach($userArray as $userObject) {
  2.    $userObject->display();
  3. }


 
...? Je sais pas si j'ai compris la question en fait.

Reply

Marsh Posté le 20-12-2005 à 01:04:12    

j_lecruel a écrit :

Code :
  1. foreach($userArray as $userObject) {
  2.    $userObject->display();
  3. }


 
...? Je sais pas si j'ai compris la question en fait.


 
 
Salut,
 
En fait, c'est exactement cela. C'était tellement "bête" que j'étais passé à côté.
J'étais en train de fumer une clope quand je me suis dis... c'est quand même pas aussi simple.... J'ai testé, et ça fonctionnait...
Merci quand même ;)
 

$myUserDB = new UserDB();
$arrayUsers = $myUserDB->getUsers();
foreach ($arrayUsers as $user)  
{
  echo $user->getUserName()." : ".$user->getUserEmail();
}

 
Il va maintenant falloir que je regarde comment intégrer cela dans un template Smarty, mais ça ne doit pas être compliqué je pense.


Message édité par didleur le 20-12-2005 à 01:06:29
Reply

Marsh Posté le 23-12-2005 à 02:46:00    

tu pouvais utiliser un simple tableau pour contenir tes objets :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed