Drupal 7を使用しており、ページャーをクエリに使用したい
これは私のクエリであり、私が使用できる方法です
$qury = db_select("SELECT `entity_id` , `field_keywords_value` , COUNT( DISTINCT ( `entity_id` )) total
FROM `field_data_field_keywords`
WHERE `bundle` = 'song'
GROUP BY `field_keywords_value`");
$query = $qury->extend('PagerDefault');
$result = $query
->extend('PagerDefault')
->limit(2)
->execute();
しかし、それは私にエラーを与えます、PDOException:エラー
そして、私がそれを次のように使用できる場合:
$qury = db_query("SELECT `entity_id` , `field_keywords_value` , COUNT( DISTINCT ( `entity_id` )) total FROM `field_data_field_keywords` WHERE `bundle` = 'song'
GROUP BY `field_keywords_value`");
$query = $qury->extend('PagerDefault');
$result = $query
->extend('PagerDefault')
->limit(2)
->execute();
echo "<pre>";
print_r($result);
die('tert');
次に、私のページが機能せず、空白のページが表示されます。
どんな助けでもありがたいです。
まず、使用しているDrupalバージョンを確認します
Drupal 7を使用している場合、以下の例を参照してください。
<?php
$result = db_select('table_name', 'table_alias')
->fields('table_alias',array('column_name1', 'column_name2', 'column_name1', .....))//SELECT the fields from user
->condition('type', 'article')
->extend('PagerDefault')
->limit(10) // Set the limit per records
->orderBy('created_date', 'DESC')//ORDER BY created or
->execute()
->fetchAssoc();
?>
より多くの例を見る
http://api.drupal.org/api/drupal/includes!database!database.inc/function/db_select/7
例Drupal 7クエリ、結合、条件、制限、およびページネーションを使用:
$query = db_select('table_name1', 't1');
$query->join('table_name2', 't2', 't.id = t2.tid');
$query
->fields('t1', array('column1', 'column2', 'column3'))
->fields('t2', array('column1'))
->condition(db_or()->condition('t1.column2', '%' . db_like($match) . '%', 'LIKE')
->condition('t2.column1', 'string', '=')
);
if($user->uid > 0) { $query->condition('t2.column2', '1', '='); } // only for logged in user
$query->groupBy('t1.id');
$search_results = $query->extend('PagerDefault')->limit(5)->execute(); // set pagination
チェック examples module これでページャーがどのように与えられるか。
選択クエリで選択を使用しています。そのため、例外エラーが発生します。
SQLクエリをそのまま実行するには、db_query()を使用します。 ex:-db_query( "select emmpno from emp")db_select()を実行するには、Drupal標準に準拠する必要があります。ex:-$ query = db_select( 'emp'、 'e'); $ result = $ query-> fields()-> execute();
選択に選択がありません。
私は自分で問題を解決しました
$query = db_select('field_data_field_keywords')->extend('PagerDefault');
$query->fields('field_data_field_keywords', array('field_keywords_value', 'entity_id'));
$query->condition('bundle', 'song'); $query->condition('field_keywords_value', arg(2));
$query->distinct('entity_id');
$result = $query ->limit(1)->execute()->fetchAll();
これがD7の新人に役立つことを願っています。
// $ listは、ページングしているアイテムのリストです
$ list = array( 'Cat'、 'Dog'、 'Mouse'、 'Horse'、 'Pony'、 'Winged mongoose'); $ per_page = 2;
//ページャーを初期化します
$ current_page = pager_default_initialize(count($ list)、$ per_page);
//リストをページサイズのチャンクに分割します
$ chunks = array_chunk($ list、$ per_page、TRUE);
//ページャーを表示します
print theme( 'pager'、array( 'quantity'、count($ list)));
//リストから適切なアイテムを表示します
print theme( 'item_list'、array( 'items' => $ chunks [$ current_page]、));