- 1
[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
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
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
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.
- 1