PHP。 Zend 数据库适配器
PHP. Zend DB adapter
我的网站上有画廊,每张图片都有自己的标签。所有的标签都乱七八糟地排序。我想按 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' 排序。 None 这些作品。
假设您的 Select() 对象是 Zend_Db_Select 的某种扩展对象,我认为这不会像您预期的那样工作,因为这不是 where 子句的正确语法。正确的是:
$select->where('id = ?', $item)
->order('index DESC');
注意“?”表达式上的通配符。这是为了防止您不希望它是等于而是大于,或其他比较子句,例如 RLIKE。另请注意,它不是数组。
可能是你的 where 子句没有按预期工作,这导致了你的标签顺序出现问题,因为它们没有按 id 分组。
希望对您有所帮助。
我的网站上有画廊,每张图片都有自己的标签。所有的标签都乱七八糟地排序。我想按 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' 排序。 None 这些作品。
假设您的 Select() 对象是 Zend_Db_Select 的某种扩展对象,我认为这不会像您预期的那样工作,因为这不是 where 子句的正确语法。正确的是:
$select->where('id = ?', $item)
->order('index DESC');
注意“?”表达式上的通配符。这是为了防止您不希望它是等于而是大于,或其他比较子句,例如 RLIKE。另请注意,它不是数组。
可能是你的 where 子句没有按预期工作,这导致了你的标签顺序出现问题,因为它们没有按 id 分组。
希望对您有所帮助。