web-dev-qa-db-ja.com

ポケットベルのヘルプ

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');

次に、私のページが機能せず、空白のページが表示されます。

どんな助けでもありがたいです。

6
user1773435

まず、使用している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

4
Ravindra Singh

例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
1
shasi kanth

チェック 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();

選択に選択がありません。

1
Dharmender

私は自分で問題を解決しました

 $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の新人に役立つことを願っています。

0
user1773435

// $ 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]、));

0
Paulraj