tags:

views:

60

answers:

2

I am building a Links voting site, the formula works ok after the link is voted the second time, the problem is that when the link just has 1 vote it shows up backwards, from oldest to newest.

What I want is for links with one vote to show from newest to oldest. This is the line that calls the links in the front page:

$articles = Article::getAll("order by ranking desc limit $offset, $num_items");

This is the getAll function code:

static function getAll($conditions = ' ')
    {
        /* Retrieve all the records from the
         * database according subject to
         * conditions
         */

        $db = null;
        $results = null;
        $records = array();
        $query = "select id, created, modified, username, url, title, description, points, ranking from articles $conditions";
        try
        {
            $db = parent::getConnection(); 
            $results = parent::execSql($query);

            while($row = $results->fetch_assoc())
            {
                $r_id = $row['id'];
                $r_created = $row['created'];
                $r_modified = $row['modified'];

                $r_title = $row['title'];
                $r_description = $row['description'];

                if(!get_magic_quotes_gpc())
                {
                    $r_title = stripslashes($r_title);
                    $r_description = stripslashes($r_description);
                }

                $r_url = $row['url'];
                $r_username = $row['username'];
                $r_points = $row['points'];
                $r_ranking = $row['ranking'];

                $article = new Article($r_title, $r_description , $r_url, $r_username, $r_created, $r_modified);
                $article->id = $r_id;
                $article->points = $r_points;
                $article->ranking = $r_ranking;
                $records[] = $article;
            }
            parent::closeConnection($db);
        }
        catch(Exception $e)
        {
            throw $e;
        }

        return $records;
    }

If anyone can help I would appreciate it.

+2  A: 

What about adding the created date to the order clause?

$articles = Article::getAll("order by ranking desc, created desc limit $offset, $num_items");
David Schmitt
+1  A: 

I'll do what David says, just that if you want the links ordered by the newest first then you have to add the "created" column in descending order:

$articles = Article::getAll("order by ranking desc, created DESC limit $offset, $num_items");
GetFree