Remove all the addAsColumn references and you should be fine On Tuesday 18 May 2010 06:04:59 Apul Gupta wrote: > I have two tables in my database, schema below: > > user: > id: ~ > email_id: { type: varchar(100), required: true } > password: { type: varchar(50), required: true } > display_name: { type: varchar(100) } > about_yourself: { type: longvarchar } > web_url: { type: varchar(500) } > last_active: { type: timestamp } > created_at: ~ > updated_at: ~ > is_active: { type: tinyint, default: 2 } > > article: > id: ~ > title: { type: varchar(400), required: true } > url_slug: { type: varchar(200), required: true } > user_id: { type: integer, foreignReference: id, > foreignTable: user, required: true, onDelete: cascade } > content: { type: longvarchar, required: true } > created_at: ~ > updated_at: ~ > is_active: { type: boolean, default: 1 } > > > =-================= > > Now, I want the list of the 5 authors who have wriiten most active > articles. > > For That purpose, I wrote the code in the UserPeer Class: > public static function getTopContributedAuthors($limit=5, > $criteria=null) > { > $criteria = new Criteria(); > > $criteria->addAsColumn('user_id', ArticlePeer::USER_ID); > $criteria->addAsColumn('number_of_articles', > 'count(article.id)'); > > > $criteria->addAsColumn('display_name', self::DISPLAY_NAME); > $criteria->addAsColumn('about_yourself', > self::ABOUT_YOURSELF); > > $criteria->addGroupByColumn('user_id'); > > $criteria->addDescendingOrderByColumn('number_of_articles'); > > $criteria->add(ArticlePeer::IS_ACTIVE, 1); > > $criteria->setLimit($limit); > > $criteria->addJoin(self::ID, ArticlePeer::USER_ID, > Criteria::RIGHT_JOIN); > > return self::doSelect($criteria); > } > > > ========== > > But, this gives me error: > > 500 | Internal Server Error | PropelException > [wrapped: SQLSTATE[42000]: Syntax error or access violation: 1064 You > have an error in your SQL syntax; check the manual that corresponds to > your MySQL server version for the right syntax to use near 'RIGHT JOIN > article ON (user.ID=article.USER_ID) WHERE article.IS_ACTIVE=1 GROUP ' > at line 1] > > and > > if, I remove the line "$criteria->add(ArticlePeer::IS_ACTIVE, 1);", > > It is giving me Notice: > > Notice: Undefined offset: 6 in D:\xampp\htdocs\myarticles\lib\model\om > \BaseUser.php on line 1227 > > > I guess that there is some issue in join. Can anybody please help to > identify the issue? > > --- > > Apul Gupta
-- If you want to report a vulnerability issue on symfony, please send it to security at symfony-project.com You received this message because you are subscribed to the Google Groups "symfony users" group. To post to this group, send email to symfony-users@googlegroups.com To unsubscribe from this group, send email to symfony-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/symfony-users?hl=en