【问题标题】:PHP. Zend DB adapterphp。 Zend DB 适配器
【发布时间】:2015-07-16 08:45:38
【问题描述】:

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

当它显示混乱的代码是:

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

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

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

但它仍然不起作用。我试图在没有“DESC”的情况下编写并尝试按“id”排序。这些都不起作用。

【问题讨论】:

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


    【解决方案1】:

    假设您的 Select() 对象是 Zend_Db_Select 的某种扩展对象,我认为这不会像您预期的那样工作,因为这不是 where 子句的正确语法。正确的是:

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

    注意“?”表达式上的通配符。这是为了防止您不希望它是等于但大于或其他比较子句(例如 RLIKE)。请注意,它不是一个数组。

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

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2013-10-28
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多