我正在写一个涉及选举结果的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参数中,数据库抱怨它被要求ORDER BY 'votes DSC' ASC
。
答案 0 :(得分:5)
首先:它的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
}
(未测试的)