Php 如何按降序执行Zend DbTable fetchAll

Php 如何按降序执行Zend DbTable fetchAll,php,zend-framework,Php,Zend Framework,我正在写一个涉及选举结果的Zend 1.12应用程序。我可以使用DbTable fetchAll只检索特定骑行中的候选人,但我希望通过投票从最差到最差的DSC排序,而不是默认的从最差到最差的ASC排序 //class Application_Model_CandidateMapper public function fetchForRiding($riding) { $where = 'riding = %s'; $resultSet = $this->getDbTable

我正在写一个涉及选举结果的Zend 1.12应用程序。我可以使用DbTable fetchAll只检索特定骑行中的候选人,但我希望通过投票从最差到最差的DSC排序,而不是默认的从最差到最差的ASC排序

//class Application_Model_CandidateMapper
public function fetchForRiding($riding)
{
    $where = 'riding = %s';
    $resultSet = $this->getDbTable()->fetchAll(sprintf($where, $riding), 'votes');
    //blah blah blah
    return $candidates
}
这将获得骑术的候选人,并通过投票命令他们,但在ASC而不是DSC中。我试图以几种不同的方式将“DSC”插入fetchAll参数,但数据库抱怨它被“投票DSC”ASC要求排序。

首先:它的DESC,而不是DSC:只需使用zend函数,而不是评论中提到的普通sql:

public function fetchForRiding($riding)
{
    $select = $this->getDbTable()->select();
    $select->where('riding = ?', $riding);
    $select->order('votes DESC');

    $resultSet = $this->getDbTable()->fetchAll($select);

    [...]

    return $candidates
}
未测试的

首先:它的描述,而不是DSC:只需使用zend函数,而不是注释中提到的普通sql:

public function fetchForRiding($riding)
{
    $select = $this->getDbTable()->select();
    $select->where('riding = ?', $riding);
    $select->order('votes DESC');

    $resultSet = $this->getDbTable()->fetchAll($select);

    [...]

    return $candidates
}

未经测试

为什么不试试$sql='SELECT*FROM table_name ORDER BY DESC';$result=$db->fetchAll$sql;我不这样做的一个原因是,我没有在映射器类中的任何位置指定表名,只在应用程序\模型\数据库表类中指定表名。但我可以很容易地改变周围的事情,这样就可以工作了。更重要的是,当我编写手动查询时,我觉得我正在破坏使用框架的目的;$result=$db->fetchAll$sql;我不这样做的一个原因是,我没有在映射器类中的任何位置指定表名,只在应用程序\模型\数据库表类中指定表名。但我可以很容易地改变周围的事情,这样就可以工作了。更重要的是,当我编写手动查询时,我觉得我正在违背使用框架的目的。