top


総投稿数 本 
no_

スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
no_1312

Pear ページング(PEAR::Pager):Pear:pager を利用してデータベースからのクエリ結果をページング ・・・ 【Pearって便利】

 2010-04-08
 いつもはオリジナルの「ページングルーチン
 利用してたのだけど、今回は、御手軽に
 Pearライブラリを使わさせていただこ。
 ※少しだけ、疑念もあるんだけど・・・

 本プロジェクトは、hetemlのサーバー。
 ・Pearも使えるし
 ・Pear:pagerも入っているようなのだけど・・・
  >heteml レンタルサーバー ホーム > サポート > FAQ > 利用できる PEAR


 システムを cgi版PHP(php5)で利用していることもあり、
 組み込まれているものでは無く、
 別に用意している Pearライブラリ
 いつも使っている。


 今回も、そちらに実装。


 ・・・「Pear:Pagerのマニュアル実装」ですな。

  追記に  ▼


FC2ブログランキング にほんブログ村 IT技術ブログ Webサイト構築へ ブログ王ランキング 人気ブログランキング 人気ホームページランキングへ


more

************************************************
◎  Pear ページング(PEAR::Pager):Pagerのマニュアル実装 の巻
                :Pearって便利

************************************************


 ※pear.php.net から取得

Package Information: Pager
Package Information: Pager 2.4.8 ですねぇ。




 

 ■解凍
   解凍
  これらを、
  サイトpearディレクトリ へは
  ・examplesフォルダ
   >(pearディレクトリ)/docs/Pager/examples
  ・testsフォルダ
   >(pearディレクトリ)/tests/Pager/tests
  ・Pager.php
   >(pearディレクトリ)/Pager.php
  ・他のファイル
   >(pearディレクトリ)/Pager/(他のファイル)
  と、入れればいいのかな。
 実行。

 

 ■test用のphpファイルの中で、pathテスト。
require_once "Pager.php";
 問題無し。
 phpの最初で(共通部品にしているが)、
ini_set('include_path', '.:(pearディレクトリ):(pear/phpディレクトリ)');
 ・・・としている。

 それでは・・・


 

  □Pagerクラス・オブジェクト 作成
   (Pager::factory() ? ページャのインスタンスを生成する
$options = array(
"totalItems" => 50,
"perPage" => 10,
"delta" => 10
);

$pager =$amp; Pager::factory($options);
 このオプション値には実にいろいろなものがあるが、
 よく使いそうなのは、
   ・itemData(array):対象となるアイテムデータがを格納された配列
    か、
   ・totalItems(integer):対象となるアイテムデータ数

   ・perPage(integer):1ページごとに表示されるアイテム数
   ・delta(integer):現在のページ前後に表示させるページ番号数
   ・mode(string):動作モード。
     ※ジャンプ型(Jumping) / スライド型(Sliding)
   ・linkClass(string):リンクのスタイルクラス(css)
   ・altFirst(string):"最初のページ" のalt文字列。デフォルト('first page')
   ・altPrev(string):"前のページ" のalt文字列。デフォルトは('previous page')
   ・altNext(string):"次のページ" のalt文字列。デフォルトは('next page')
   ・altLast(string):"最後のページ" のalt文字列。デフォルトは('last page')
   ・altPage(string):ページ番号の前に表示されるalt文字列。デフォルトは('page')
 このあたりですかね。

  □"ジャンプ型" 対 "スライド型"
    上記 オプションの設定にある、
    ・mode(string):動作モード
     の違いは,「delta パラメータ」にあり、
      ・"ジャンプ" モードの場合、表示するページ番号の数
      ・"スライド" モードの場合、
       現在のページの前後に表示するページ番号の数
    ですね。


 

  □リンクの生成
   (導入 ? Pager 2.x の使用方法
//使用準備
require_once 'Pager.php';
//利用設定
$params = array(
'mode' => 'Jumping',
'perPage' => 3,
'delta' => 2,
'itemData' => array('a','b','c','d','e',[...omissis...],'z')
);
//インスタンス生成
$pager = $amp; Pager::factory($params);

//現在のページのデータの配列 を得て
$data = $pager->getPageData();
//並び替えられた連想配列として、
//戻る/次/最初/最後のリンクとページリンクを返す
$links = $pager->getLinks();
 これで得た,$links
 echo $links['all'];
  としていやれば、他のページへ遷移できる
  ナビゲーションを表示でき
 echo $pager->linkTags;
  とすれば、altタグなどの指定も有効になった
  ものが表示される・・・と。

 便利ですねぇ。


 ただ、最初に、
  「※少しだけ、疑念もあるんだけど・・・」
  としたのは、

 基本的な使い方が、
 ・クエリの結果セットをすべて配列に格納し
 ・ページングのリンク文字列を生成してから
 ・当該ページで表示する部分だけを抽出。
 というのが、負荷もかかるだろうし、無駄もあるな
 と思っていたのです。


 !でも
  そんなこと、天下のPear
  お見通しですよね。


  □/docs/examples/ ディレクトリに、
   PEAR DB 抽象システムのサンプルラッパー
   があるようですね。(Pager_Wrapper.php)
   参考にさせていただきます。

commentsコメント
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/1312-f4a65886
ようこそ
Add to Google 創るmetaboy:RSSフィード
My Yahoo!に追加
最新記事のRSS | 問い合わせ

仕事検索、アルバイト検索、依頼仕事の検索ポータル - 仕事検索.COM - www.jobkensaku.com ツクルン

創るmetaboy - WEB創る、サイト創る、何創る - 創ったmetaboy

 

リンク集

 

最近の記事

 

ブロとも申請フォーム
Sponserd by

さくらのレンタルサーバ さくらのレンタルサーバ
大容量・高機能レンタルサーバー heteml 大容量・高機能レンタルサーバー heteml
XREA (ValueDomain)
お名前.com お名前.com
名づけてねっと名づけてねっと
ムームードメインムームードメイン

 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。