我的网站上有画廊,每张照片都有自己的标签。所有标签都是混乱排序的。我想按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'排序。这些都不起作用。
答案 0 :(得分:0)
假设您的Select()对象是Zend_Db_Select的某种扩展对象,我认为这不符合您的预期,因为它不是where子句的正确语法。正确的是:
$select->where('id = ?', $item)
->order('index DESC');
请注意'?'表达式上的通配符。如果您不希望它是等于但大于或等其他比较条款(例如RLIKE),则会进行此操作。请注意,它还不是数组。
可能你的where子句没有按预期工作,这导致标签顺序出现问题,因为它们没有按ID分组。
我希望这会有所帮助。