Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Stocker le resultat d'une requete en session

Posted by bentaye on 02/16/2009 23:34

Bonjour,

J'ai un petit probleme de session a vous soumettre.

dans une zone j'ai le bout de code suivant :

 $announceDao = jDao::get("announce~announce");
 $announceList = $announceDao->findAll();
 
 $_SESSION['featuredAnnounces'] = $announceList;
 $this->_tpl->assign('announceList', $announceList);

ensuite dans le template j'affiche correctement les "announce" avec un for each (il y en a 4). jusqu'ici tout va bien

mais un peu plus loin dans un controller je veux recuperer cette liste de la session et j'ai le bout de code suivant :

 $featuredAnnounces = $_SESSION['featuredAnnounces'];
 echo "count = ".count($featuredAnnounces)."<br/>";
 foreach ($featuredAnnounces as $announce){
    echo "annonce = ".$announce."<br/>";
 }

j'obtiens : count = 1
announce = mysqlDbResultSet
announce = 0
announce = 8
announce = cDaoRecord_announce_Jx_announce_Jx_mysql
announce =
announce =
announce = 3

le count me donne 1, alors que je m'attendais a 4
et le for each n'en parlons pas .. la je suis perdu :)

comment faire pour recuperer mes 4 "announce" ?

  [Opened] Re: Stocker le resultat d'une requete en session

Reply #1 Posted by laurentj on 02/17/2009 00:00

Les résultats renvoyé par un objet dao ne sont pas dans un tableau, mais un resultset implémentant Iterator (d'où la possibilité d'utiliser le resultset dans un foreach).

Et à ma connaissance, il n'est pas possible de stocker un resultset en session en PHP. Il faut donc que tu places dans un tableau la liste des resultats renvoyé par findAll, et que tu stockes ce tableau en session.

 
Page
  1. Stocker le resultat d'une requete en session