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

  [Opened] Mettre dans une variable un seul resultat de jDAO

Posted by Pablo on 04/30/2009 19:42

Bonjour!

Désolé pour le titre du sujet qui n'est pas vraiment explicite, mais je n'ai pas pu faire mieux.

Alors voilà, je viens de découvrir Jelix il y a une semaine, et depuis je suis à fond dedans!!!

J'ai une table dans ma base de données qui contient les contenus des différentes parties de mon site, pour pouvoir les modifier.

Chaque contenu est identifié par un champ 'nom', 'contenu' contenant. Seulement voilà: je n'arrive pas à récupérer juste le contenu d'une partie dans une variable sans faire un immonde {foreach} dans mon template (immonde car il ne sert qu'une fois).

En PHP brut, je pouvais le faire si mon mysql_fetch_assoc ne contenait qu'une entrée de la base:

 $ret = mysql_query("SELECT contenu FROM contenu_site WHERE nom = 'machin'");
 $donnees = mysql_fetch_assoc($ret);
 $contenu = $donnees['contenu']; 
 /*Oui, c'est un peu barbare. Je crois qu'on peut le faire avec mysql_result, mais je ne me suis pas penché sur la question..*/

Mais je ne sait pas comment le faire avec Jelix: comme ça ça ne marche pas:

 $conditions = jDao::createConditions();
 $conditions->addCondition('nom', '=', 'machin');
 $ret = $dao->findBy($conditions);
 $contenu = $ret->contenu; //C'est la que ça merde
 $tpl = new jTpl();
 $tpl->assign('contenu', $contenu);

  [Opened] Re: Mettre dans une variable un seul resultat de jDAO

Reply #1 Posted by bobi on 05/01/2009 20:05

Comme tu utilises jDaoFactoryBase::findBy, tu obtiens en retour un jDbResultset et donc un simple :

 

$rs = $dao->findBy($conditions); $record = $rs->fetch();

marchera puis apres $record->contenu ... ou autres propriétés définies dans ton dao.

  [Opened] Re: Mettre dans une variable un seul resultat de jDAO

Reply #2 Posted by laurentj on 05/04/2009 10:39

Et sinon, plutôt que d'utiliser jDaoConditions, fait une methode en XML dans le dao, avec un type "selectfirst"

PS: bienvenue sur le projet jelix :)

 
Page
  1. Mettre dans une variable un seul resultat de jDAO