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

  [Opened] jDbConnection.mysql

Posted by Zagor on 03/31/2006 23:17

Je suis en train de mettre en place un module news avec 2 tables (1 pour les news et 1 qui nomme les rubriques)

news.dao.xml

 <?xml version="1.0"?>
 <dao xmlns="http://jelix.org/ns/dao/1.0">
   <datasources>
      <primarytable name="hd_news"           primarykey="news_id" />
      <foreigntable name="hd_news_rubriques" primarykey="news_rubriques_id" onforeignkey="news_rubrique" />
   </datasources>
   <record>
      <property name="id"          fieldname="news_id"            table="hd_news"           datatype="autoincrement" required="yes" />
      <property name="titre"       fieldname="news_titre"         table="hd_news"           datatype="string"        required="yes" />
      <property name="description" fieldname="news_description"   table="hd_news"           datatype="string"        required="yes" />
      <property name="texte"       fieldname="news_texte"         table="hd_news"           datatype="string"        required="yes" />

      <property name="auteur"      fieldname="news_auteur"        table="hd_news"           datatype="string"        required="yes" />
      <property name="date"        fieldname="news_date"          table="hd_news"           datatype="date"          required="yes" />
      <property name="valider"     fieldname="news_valider"       table="hd_news"           datatype="integer"       required="yes" />

      <property name="rubrique"    fieldname="news_rubriques_nom" table="hd_news_rubriques" datatype="string"        required="yes" />
   </record>
   <factory>
     <method name="getById" type="selectfirst">
         <parameter name="id" />
         <conditions>
             <eq property="id" expr="$id" />
         </conditions>
     </method>
     <method name="findLastById" type="select">
         <parameter name="limit" />
         <conditions>
             <eq property="valider" value="3" />
         </conditions>
         <order>
             <orderitem property="date" way="desc" />
         </order>
         <limit offset="0" count="$limit" />
     </method>
   </factory>
 </dao>

Lors de la comilation (je suppose), Jélix m'affiche uniquement un message d'erreur

 [error 403] Erreur dans la requête (Erreur de syntaxe près de 'AND hd_news.news_valider = 3 ORDER BY date desc' à la ligne 1(SELECT hd_news.news_id as id, hd_news.news_titre as titre, hd_news.news_description as description, hd_news.news_texte as texte, hd_news.news_auteur as auteur, hd_news.news_date as date, hd_news.news_valider as valider, hd_news_rubriques.news_rubriques_nom as rubrique FROM hd_news, hd_news_rubriques WHERE hd_news.news_rubrique=hd_news_rubriques. AND hd_news.news_valider = 3 ORDER BY date desc)) f:\portableapps\portableeasyphp5\www\jelix-lib-1.0alpha2\lib\jelix\db\drivers\mysql\jDbConnection.mysql.class.php 86

Je vois que le problème vient de WHERE hd_news.news_rubrique=hd_news_rubriques. qui ne nomme pas la clè de la table hd_news_rubriques.

Est ce un bug de Jélix ou une mauvaise configuration de mon fichier dao.

  [Opened] Re: jDbConnection.mysql

Reply #1 Posted by laurentj on 04/01/2006 23:20

Ton fichier me semble bon. Je pense que tu as mis le doigt sur un bug. Je vais investiguer :-)

Sinon quelques remarques sur ton fichier :

  • tu n'es pas obligé de mettre l'attribut table sur les propriétés qui conçernent la table principale (donc pas besoin de mettre table="hd_news" )
  • ta methode getById est inutile. Il y a déjà nativement la methode get(), à laquelle tu passes la ou les clés primaires (donc ici ton 'id').

  [Opened] Re: jDbConnection.mysql

Reply #2 Posted by laurentj on 04/12/2006 17:40

oui oui désolé, pas encore eu le temps de voir ça.

  [Opened] Re: jDbConnection.mysql

Reply #3 Posted by laurentj on 04/12/2006 23:42

bug corrigé. Je pense que la version svn-132 dispo en téléchargement fonctionnera pour toi.

 
Page
  1. jDbConnection.mysql