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

Reply via email to