【Pager】10件ごとのページ分割について - PHPプロ!Q&A掲示板
現状 【 1|2 >> 】 というページャーの表示は出ます。
SQLで取得した1ページ目の10件のデータも出ます。ここまではうまくいっています。
しかし、、、ページャーの”2”や”>>(次ページ)”をクリックするとSQLで取得した
11件目~最後までが表示されず、空白になります。
アドレスバーには”pageID=2”と開いた事になっていますが次ページに遷移した際クエリを再度投げてくれてないような気がします。下記、limitやoffsetに値を入れたら11件目~最終レコードまで表示されます。
2ページ目を表示させるにはどのように記述したらよいでしょうか?
エラーが出ないもので惜しい所までいってると思うのですが・・・。
- session_start();
- $ID = $_POST["id"];
- require_once "DB_open.php"; //DBのログイン情報
- require_once ("Pager/Pager.php"); //Pager
- //MySQLデータベースに接続
- $link = mysql_connect($server, $usr, $pass);
- //データベース選択
- $db = mysql_select_db($mydb, $link);
- $limit = 100; /*最大取得件数 */
- $page_next = 10; /* 1ページ当たりの表示件数 */
- $page = empty($_GET['pageID']) ? 1: $_GET['pageID'];
- $offset = ($page - 1) * $page_next;
- /* クエリ条件部分 */
- $query = "SELECT * FROM detail";
- $query .= " where 1";
- $query .= " and category = '".$ID."'";
- $query .= " limit {$limit} offset {$offset}";
- //文字コード
- mysql_set_charset("utf8");
- //クエリ実行
- $result = mysql_query($query);
- $rows = mysql_num_rows($result);
- //メイン出力部
- while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
- $list[] = array(category =>$row["category"],name=>$row["name"],number=>$row["number"]);
- }
- $params = array(
- 'mode' => 'sliding',
- 'perPage' => 10,
- 'itemData' => $list,
- 'firstPagePre'=>'=',
- "firstPageText"=>"TOP",
- "firstPagePost"=>"=",
- "lastPagePre"=>"=",
- "lastPageText"=>"LAST",
- "lastPagePost"=>"=",
- );
- $pager = & Pager::factory($params);
- $navi = $pager->getLinks();
- print($pager->numItems()."件中<br/>");
- $scope = $pager->getOffsetByPageId();
- print($scope['0']."件目から".$scope['1']."件目を表示 <br/>");
- $ary = $pager->getPageData();
- //メイン出力部
- foreach ($ary AS $key => $value) {
- echo "<br>□1<br>".$value["category"]."<br>";
- echo "□2<br>".$value["name"]."<br>";
- echo "□3<br>".$value["number"]."<br>";
- echo "<hr>";
- }
- echo $navi['all'];
- //SQLの解放
- mysql_free_result($result);
- mysql_close($link);
この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。




ページのトップへ


今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!