2

所以我正在使用 db_select 查询进行 Drupal 查询。

我试图获得最后一个 $i 值,但我只获得最后一个值。这是我的代码:

$query = db_select('registration');

$result = $query
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute()
->fetchAssoc();

注意,$i 是在程序的前面设置的,当我检查它时会提供正确的结果。

4

2 回答 2

1

fetchAssoc()方法仅获取下一行。要获得完整的结果集,您可以像这样遍历所有结果:

$result = $query
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute();

while ($row = $result->fetchAssoc()) {
    // do something
}

但是,由于您只选择一个字段,我认为更好的获取类型可能是fetchCol(). 如果您只是将查询中的fetchAssoc()替换为将等于所有结果的零索引数组。fetchCol()$results

于 2013-08-14T22:23:42.847 回答
1

如果你想避免整个 while 循环处理,你可以使用fetchAll()调用。

$events = db_select('registration', 'r')
->fields('registration', array('registration_id'))
->orderBy('registration_id', 'DESC')
->range(0, $i)
->execute()
->fetchAll();
于 2016-04-11T22:24:02.057 回答