• ベストアンサー

PEARのPagerによるページ番号について

PEARのPagerを利用して、ページ番号を表示させているのですが、通常1 2 3・・のようにページ番号が表示されますが、これを「2」から表示させることは可能でしょうか? Pagerによって割り振られた2ページ目からということでなく、単に数字の始まりを「2」からにしたいのです。 2 3 4 ・・・と1を表示させずに2から表示させることは可能でしょうか? ご回答宜しくお願い致します。 例) ●通常 1 2 3 4 5 6 NEXT>> ●2から始めたい 2 3 4 5 6 NEXT>>

質問者が選んだベストアンサー

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

こんな感じでしょうか? $links = $pager->getLinks(); echo preg_replace_callback('/>[1-9]+</', 'test', $links['all']); function test($matches) { return '>' . (trim($matches[0], '<>') + 1) . '<'; }

furafurasan
質問者

お礼

tany180sx様ご回答いただき、ありがとうございました。 ご回答いただいたやり方で、問題を解決することができました。 ご回答いただいたプログラムを見て、なるほどと感激いたしました。 この度は、誠に有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

表示させる前にxxx_replaceで1のリンクだけ消すのが簡単かと。。

furafurasan
質問者

補足

ご回答いただき、ありがとうございます。 早速試してみたのですが、str_rplace関数を使って1を消すことはできたのですが、できれば、本来1ページ目にあたるページにページ番号「2」を付けたいのです。2ページ目にあたるページに対しては、「3」という番号を付けたいのです。 お忙しいところ申しわけございませんが、よい方法がありましたら、ご回答いただければと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PEAR::Pagerのページ番号の変更

    現在Pagerを使ってページ間のリンクを作成しています。 通常ページ番号は   1 2 3  ・・・  と表示されますが、これを  1-100 101-200 201-300 ・・・ という表示に変える事は可能でしょうか。 ご存知の方いらっしゃいましたら教えて下さい。

    • ベストアンサー
    • PHP
  • PEAR PAGERでの大量データ処理についての質問

    PEAR PAGERでの大量データ処理についての質問 お世話になっております。 <実行環境> PHP=Ver5.3.1 , db=db2 , smarty使用 例)50万レコードの名称データからある文字列のデータを抽出して画面表示させるPHPですが、   1画面に表示するデータ件数=20件とした場合、抽出されたデータが1万件あった場合、   ページ数=10000/20=500ページになります。 現在、上記例の場合はデータ抽出とページ作成に長時間掛かり、使用に耐えません。 そこで時短策についてご存知の方、よろしくお願いいたします。 <基本的な質問> PEAR PAGERは対象データとして抽出された結果データ(配列)に対してのページング機能と 理解してよろしいですか? <問題解決策の質問> 小生が解決策として考えたのは下記2点なのですが、 1)抽出データのSELECT時にFETCH FIRST 500 の様に、表示対象データ件数を固定してしまい、   それ以上は新たに検索キーワードを入力し直す方法・・・これだとページは25ページで終了。 2)抽出データのSELECT時にBETWEEN m AND n の様にm件目からn件分と定義して置き、   PHPで”次頁”、”前頁”を押した時にPEAR PAGERを抜出してSELECT文を設定し直して   PEAR PAGERを再実行させる方法・・・これだとPAGERはいらない? ---------------------------------- もっと簡単でスマートな方法ご存知ありませんか? PEAR PAGERの有効な使用方法をご教授頂けると幸いです。 *質問文が解り辛かったらお詫びいたします。

    • 締切済み
    • PHP
  • pearのpagerでDB表示

    phpでpearのpagerでDB(mysql)表示できますか? ひとりずつの情報を表示したいのですが。

    • 締切済み
    • PHP
  • データの表示の仕方について教えてください(PEAR PAGERの使い方)

    PHP5.2.4 MYSQL14.12DISTRIB5.0.4 WINXP IE=6.0 PEAR PAGERを使って、1ページに10件ずつ表示されるようにしたくて、下のようなコードを書きました。不具合として、1ページ目の10件表示はされるのですが、2ページ目、3ページ目といどうさせても表示が1から10件目とおなじになります。結果セットからのデーターの表示の仕方がおかしいと思ってるんですが、どういうふうにしていいのか 全く判りません。どなたか、素人にも判るようにご教授いただけたらと思います。宜しくお願いいたします。 <?php require_once 'Pager/Pager.php'; $totalItems = 47; $perPage=10; /*ページャーのパラメーター設定 モード:スライディング ページごとの表示数(perpage)カレントページの前後の表示ページ数(dalta)アイテムの数(totalitem)  */ $params = array( 'mode' => 'sliding', 'perPage' => $perPage, 'delta' => 5, 'totalItems' => $totalItems ); /*ページャーインスタンスの生成*/ $pager =& Pager::factory($params); /*ページのデータの取得*/ $links = $pager->getLinks(); print($links["all"]); /*現在のページ番号を取得して配列に入れる*/ $currentPageID = $pager->getCurrentPageID();  /*ページIDのオフセット値を返す*/ $index=($currentPageID-1)*$perPage+1;          if($rows==0){ /* 取り出すデーターがないとき、エラーメッセージを表示 */    print "該当するデータが見つかりませんでした。\n";  }else{ for($i=$index;$i<$index+$perPage;$i++){   if($i<=$totalItems){ $row=mysql_fetch_array($result) ?> <div align="center"> <TABLE border="1"> <TR> <TD colspan="2" width="500" align="center"><?=$row["e"] ?></TD> </TR> <TR> <TD height="45"><?=$row["setumei"] ?></TD> </TR> </TABLE><br><br> <div> <?php } } } ?>

    • 締切済み
    • PHP
  • PEAR::Pagerでチェックボックスデータを保持したいです。

    PEAR::Pagerでチェックボックスデータを保持したいです。 CentOS 5.0 PHP 5.1.6 携帯サイトを作っています。 画像を一覧で表示しているページで、各画像に チェックボックスを付けチェックの入った画像を 次のページで表示しています。 登録されている画像が10枚以上ある場合は、 PEAR::Pagerを使ってページングしているのですが、 2ページ目、3ページ目と遷移した場合にチェックボックスの データを保持する方法をご教授願いたいのです。 ページングはaタグでリンクしていますので、POSTの値を 保持する方法はどうしたもんかと・・・。 携帯なのでjavascriptも使えないので大変困っております。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PEAR::Pagerにアンカーリンクを設定したい

    便利にPEAR::Pager を利用していますが アンカーリンクの利用方法(設定方法)が分かりません。 調べてみると、それを書いているページもあるのですが、 知識の無さから、意味が分かりません。。。。 パラメーターに 「'fileName'  => 'test_.php#top2',」 と設定するのかななど考えてやってみましたが、何も変化はありません。 現在 以下のように設定しています。 **GETで色々なクエリは引き継いでいますが、それはうまく行っています。 色々なクエリの後に、アンカー[#top2] はどのように設定したらよいでしょうか。 よろしくお願いいたします。 $params = array( 'mode' => 'sliding', 'perPage' => 10, 'delta' => 5, 'separator' => '', 'curPageSpanPre' => '<span class="current">', 'curPageSpanPost' => '</span>', 'prevImg' => '< 前へ', 'nextImg' => '次へ >', 'spacesBeforeSeparator' => 0, 'spacesAfterSeparator' => 0, 'totalItems' => $tcnt, 'altFirst' => '1ページ目へ', 'altPrev' => '前のページへ', 'altNext' => '次のページへ', 'altLast' => '最後のページへ', ); $_GET = $_REQUEST; $pager =& Pager::factory($params); $links = $pager->getLinks();

    • ベストアンサー
    • PHP
  • PHP PEARのPagerをSmartyで使う

    初めまして、PEARのPagerを勉強していたのですが、Smartyで実装したいと思い試行錯誤していたらうまく表示されなくて困っています。 【PHP】 //PEARの読み込み、Smartyクラスの読み込み、MySQLクラスの読み込みは省略 //上記は正常に動作しています。 // テーブルの行数を数えます $sql = "SELECT COUNT(*) AS cnt FROM table_name;"; //レコード開始位置指定 $start = 0; //最大レコード数を指定 $limit = 10; // データを取り出すSQLを実行します。 $sql = "select * from table_name ORDER BY no DESC LIMIT $start, $limit"; $result = mysql_query($sql); while($rows = mysql_fetch_array($result)){ $res_data[]=array("title"=>$row['title'],"name"=>$row["name"],"no"=>$row["no"]); } //Pagerのパラメータを指定 $params = array( "itemData" => $res_data, "totalItems" => $limit, "perPage" => 6, "delta" =>5, "mode" =>"Jumping" ); //パラメータの連想配列を受け取る $pager =& Pager::factory($params); // ページデータの割り当て処理 foreach($pager->getPageData() as $item){ $res_data_page[] = $item; } //戻る/次/最初/最後のリンクとページリンクを返す $link = $pager -> getLinks(); //現在のページ番号を返す $currentPageID = $pager -> getCurrentPageID(); // テンプレート用に変数を設定 $smarty->assign('data', $res_data_page); $smarty->assign('pageNavi', $link['all']); $smarty->assign('currentPage', $currentPageID); ■tpl <table border="1"> <tr> <th>名前</th> <th>NO</th> <th>タイトル</th> </tr> {foreach from=$data item=i} <tr> <td>{$i.name}</td> <td>{$i.no}</td> <td>{$i.title}</td> </tr> {/foreach} </table> <p>{$pageNavi}</p> <p>{$currentPage}ページを表示</p> 参考URL http://meerweb.blog7.fc2.com/blog-entry-101.html データベースへの接続は出来ていて、ページャー機能は動いています。 取得しているデータ数もあっているのですが、全部1行目のデータだけ表示されます。 どなたか原因が分かる方いらっしゃいましたら、是非ともご教授ください。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PEAR Pagerを利用してデータの管理をしたいのですが・・・

    Pagerを使ってページ送り機能を自分のホームページに用いたいと思っています。 いろんなサイトを参考にして調べているのですが、理解できなくて困っています。何を勉強して、何を用いるのかという時点です。 どういう知識を身につければいいのかわかる方いらっしゃいましたら教えてください。よろしくお願いします。 ちなみに私がしたいことは、テーブルにのせたデータを100個作って、1ページにつきそのデータを5件ずつ表示させることです。 これはPagerでも可能でしょうか。 またページのデザインはメニューはPHP、デザインはCSSによって行っています。このファイルにpagerを組み込むことはできるでしょうか? 初心者的な内容かもしれませんがよろしくお願いいたします。

    • 締切済み
    • PHP
  • ロリポップでPagerを使うには?

    質問させて下さい。 PHP Smartyなどで開発をしている者です。 サーバはロリポップを使っています。 ページング機能を使いたくて、PEARのPagerを利用したいと思っています。 いくつか参考サイトを見たりしましたが、情報が古かったり簡略化されてたりと、いまいち分かりません。 元々PHPでページング機能を実装していたのですが、Smartyでページング機能を実装するのが困難だったので、PEARのPagerがよいのかな?という事で試行錯誤しています。 是非とも教えて下さい。

    • ベストアンサー
    • PHP
  • jQueryのpagerを使ったページで、

    jQueryのpagerを使ったページで、 ページ内リンクを機能させる方法を教えてください。 以下のサイトを参考に、 自動でページング化されるページを作りました。 『ゼロからはじめるpager - Web文章をらくらく分割してみよう』(マイコミ) http://journal.mycom.co.jp/articles/2007/06/19/null/index.html ページング機能は問題なく作動しているのですが、 外部からのページ内リンクがうまく機能しません。 どうしても、ページを開いたときに 一番最初に表示するよう設定しているページが 開いてしまいます。 ----------------------------------------------------------- <例> ページング機能を施したページを"ページA"とします。 "ページA"で2ページ目以降に表示される特定の箇所に <a id="hoge"></a>を設置します。 "ページB"を作ります。 "ページB"に<a href="ページA#hoge">hoge</a>を設置します。 リンク"hoge"をクリックすると、 "ページA"の<a id="hoge"></a>にはジャンプせず、 "ページA"に一番最初に表示されるように 設定されたページが開いてしまいます。 ----------------------------------------------------------- 以上です。 解決策をご存知の方がいらっしゃいましたら ご教授願えますでしょうか。 どうぞ宜しくお願い致します。