You can use an ORM object route to achieve this with minimal coding on your part. I'm going to assume you're on Doctrine but if you're on Propel the implementation should be very similar (probably just using sfPropelRoute as your class). In your application's config/routing.yml add your custom route:
author_articles:
url: /authors/:author
param: { module: articles, action: author }
class: sfDoctrineRoute
options: { model: Article, type: list }
Note: I used the URL /authors/ instead of the /articles/ you requested so this route won't conflict with any of the actions in your articles module but feel free to use any URL you'd prefer in your config.
Clear your cache after saving those changes to make Symfony aware of the new route. What this has done is told your app to take all URLs matching /authors/* and pass them through the author action of your articles module, generating a list of objects that matches the :author parameter in the URL. The object route does this all automatically with just the configuration above.
Now in the author action of your articles module add:
public function executeAuthor() {
$this->articles = $this->getRoute()->getObjects();
}
Now you have the query result in a variable for your action template. In your authorSuccess.php template loop through the $articles array as you see fit.
To link to this route from your main list using an author's name you can use the url_for helper with the route you just created to generate the full URLs dynamically:
<a href="<?php echo url_for('@author_articles?author=' . $article['author']) ?>"><?php echo $article['author'] ?></a>
That's all there is to it.