PHP。 Zend DB适配器

时间:2015-07-16 08:45:39

标签: php sorting zend-framework zend-db-select

我的网站上有画廊,每张照片都有自己的标签。所有标签都是混乱排序的。我想按galleryTagsTable中字段“index”的值对它们进行排序。

当它显示出混乱的代码时:

foreach ($_tags as $item) {
    $select = new Select();
    $tags[] = $this->getGalleryTagsTable()->fetchAll($select->where(array('id' => $item)));
}

要按字段“index”进行排序,我创建了这个字段并编写了这段代码:

foreach ($_tags as $item) {
    $select = new Select();
    $tags[] = $this->getGalleryTagsTable()->fetchAll($select->where(array('id' => $item))->order('index DESC'));
}

但它仍然无效。我试着写'没有'DESC'&试图按'id'排序。这些都不起作用。

1 个答案:

答案 0 :(得分:0)

假设您的Select()对象是Zend_Db_Select的某种扩展对象,我认为这不符合您的预期,因为它不是where子句的正确语法。正确的是:

$select->where('id = ?', $item)
       ->order('index DESC');

请注意'?'表达式上的通配符。如果您不希望它是等于但大于或等其他比较条款(例如RLIKE),则会进行此操作。请注意,它还不是数组。

可能你的where子句没有按预期工作,这导致标签顺序出现问题,因为它们没有按ID分组。

我希望这会有所帮助。