• 締切済み

Pagerを使って、mysqlからデータを取り出して、分割表示を行ない

Pagerを使って、mysqlからデータを取り出して、分割表示を行ないたい。 <?php require_once("MYDB.php"); $conn = db_connect(); //検索 start// $search_key=""; if(isset($_POST['search_key'])) $search_key = addslashes($_POST['search_key']); $sql=<<<EOS SELECT * FROM inscription WHERE site like '%$search_key%' OR url like '%$search_key%' OR fix like '%$search_key%' OR ex like '%$search_key%' EOS; if(preg_match("/Windows/",$_ENV["OS"])){ $sql=mb_convert_encoding($sql, "SJIS","EUC-JP"); } $result=$conn->query($sql); if(DB::isError($result)){ die($result->getMessage()); } $count = $result->numRows(); //検索 end// //☆☆ここにPearのPager☆☆導入// if($count>0){ ?> <table border="1" cellspacing="0" cellpadding="10"> <tr> <td width="530"><font size="2px">サイト名</font></td> </tr> <?php while($rs=$result->fetchRow( DB_FETCHMODE_ASSOC )){ if(preg_match("/Windows/", $_ENV["OS"])){ $rs['site']=mb_convert_encoding($rs['site'],"EUC-JP","SJIS"); $rs['url']=mb_convert_encoding($rs['url'],"EUC-JP","SJIS"); $rs['ex']=mb_convert_encoding($rs['ex'],"EUC-JP","SJIS"); $rs['fix']=mb_convert_encoding($rs['fix'],"EUC-JP","SJIS"); } ?> <tr><td width="530"><font size="2px"><a href="<?php echo $rs['url']?>" target="blank"><?php echo $rs['site']?></a></font></td></tr> <?php } ?> </table> <?php } $result->free(); $conn->disconnect(); ?> --------------------------------------------------------- 上のプログラムは、リスト表示するデータです。 上の☆☆ここにPearのPager導入☆☆の所に以下の内容を入れて、1ページ20行程度のリストとして分割表示を行ないたいと思っています。 <?php //Pager start// require_once("Pager/Pager.php"); $options = array( "totalItems" => 265, "delta" => 10, "perPage" => 20, ); $pager =& Pager::factory($options); $navi = $pager -> getLinks(); print($navi["all"]); $currentPageID = $pager -> getCurrentPageID(); //Pager end // ?> ただ単に導入しただけでは、 「1 2 3 4 5 6 7 8 9 10 Next >> 」と表示されるだけです。 どうすれば、分割表示できるようになるのでしょうか。 PHPに関しては、まったく知識がなく1,2冊程度の本を買って勉強した程度のレベルです。 正しい書き方等があればよろしくお願いいたします。

みんなの回答

回答No.1

Pagerは、ページング処理をするためのライブラリで、データベースから取得した内容を切り分ける機能はないです。 currentPageIDで、現在開いているページが取得できるわけですので、 ・optionsのtotalItemsはSQLのCOUNTなどで取得した件数を記述する ・currentPageIDから、mysqlやpostgresなどであればLIMIT句で取得箇所を可変にする ということをしてください。

関連するQ&A