人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PEAR::DBとPEAR::Pager使ってます

require_once("Pager.php");
$perPage=5;
$params=array(
"perPage"=>$perPage,
"itemData"=> $alldata,
"firstPagePre"=>"{", "firstPageText"=>"先頭","firstPagePost"=>"}",
"lastPagePre"=>"{", "lastPageText"=>"最後","lastPagePost"=>"}");
$o_page=Pager::factory($params);
print("<ul>");
foreach($o_page->getPageData() as $alldata){
print("<li>".$alldata."</li>");
}
print("</ul>");
$navi=$o_page->getLinks();
print($navi['all']);

$alldataには、PEAR::DBでの結果が連想配列で入っています。
なので、結果はarray()です。でもPEAR::DBはどうしても使いたいです。よい方法はないですか??


●質問者: goodbabies
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:ALL as dB Factory NAVI
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●100ポイント ベストアンサー

PEAR::DBではなくPEAR::MDB2ですが流れは同じなので下記参考にしてみてください

http://www.alberton.info/pear_pager_tutorial_database_results.ht...

<?php
require_once 'Pager/Pager.php';
require_once 'MDB2.php';

//skipped the db connection code...
//let's just suppose we have a valid db connection in $db.

//first, we use Pager to create the links
$num_products = $db->queryOne('SELECT COUNT(*) FROM products');
$pager_options = array(
 'mode' => 'Sliding',
 'perPage' => 10,
 'delta' => 2,
 'totalItems' => $num_products,
);

$pager = Pager::factory($pager_options);

//then we fetch the relevant records for the current page
list($from, $to) = $pager->getOffsetByPageId();
//set the OFFSET and LIMIT clauses for the following query
$db->setLimit($pager_options['perPage'], $from - 1);
$query = 'SELECT prod_name, prod_description FROM products';
$products = $db->queryAll($query, null, MDB2_FETCHMODE_ASSOC);

//show the results
echo '<ul>';
foreach ($products as $product) {
 echo '<li>'.$product['prod_name'].': '.$product['prod_description'].'</li>';
}
echo '</ul>';

//show the links
echo $pager->links;

(1)該当するレコードの件数を数えてPager::factoryにセット

http://pear.php.net/manual/ja/package.database.db.db-common.geto...

(2)Limitで該当するレコード範囲を指定しつつデータベースからデータを取り出し

http://pear.php.net/manual/ja/package.database.db.db-common.limi...

http://pear.php.net/manual/ja/package.database.db.db-common.geta...

(3)foreachでデータを出力

(4)Linksを出力

下記URLをお気に入りに入れておくと良いでしょう

http://pear.php.net/manual/ja/package.database.db.php

http://pear.php.net/manual/ja/package.database.mdb2.php

◎質問者からの返答

windofjulyさん!いつもありがとうございます!とても参考になりました!できそうです!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ