Php 如何按降序执行Zend DbTable fetchAll
我正在写一个涉及选举结果的Zend 1.12应用程序。我可以使用DbTable fetchAll只检索特定骑行中的候选人,但我希望通过投票从最差到最差的DSC排序,而不是默认的从最差到最差的ASC排序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
//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;我不这样做的一个原因是,我没有在映射器类中的任何位置指定表名,只在应用程序\模型\数据库表类中指定表名。但我可以很容易地改变周围的事情,这样就可以工作了。更重要的是,当我编写手动查询时,我觉得我正在违背使用框架的目的。