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 に答える