ページング機能の実装について@PHP+MySQL

このQ&Aのポイント
  • 表示する要素が多く、ページング機能を実装する必要があります。
  • 具体的な実現したい機能について説明しました。
  • 実装に関する質問と、より効率的な方法についてのアドバイスを求めています。
回答を見る
  • ベストアンサー

ページング機能の実装について@PHP+MySQL

ページング機能の実装について 【PHP+MySQL】 表示させる要素が多いものでは数万件あり、 たとえば1ページあたりの表示を10件とすると数千ページになります。 実現したい機能は ------------------------------------------------- ◆10ページ以内に収まる件数なら全ページをリンク表示。 [ 1 2 3 4 5 6 7 8 9 10 ] ◆上記以外の場合では↓これと同じくする。 http://tutorials.ajaxmasters.com/pagination-demo/ ◆上記paginationで [...] に当たるページが100ページ以上ある 場合は中間のページをリンク表示。 [ 1 2 ... 135 ... 271 272 273 274 275 ... 612 ... 1499 1500 ] ------------------------------------------------- を考えています。 質問ですが、 1.このようなものを容易に実装できるようなライブラリ等を ご存知の方いらっしゃいましたらご教示ください。 2.上に書いた jquery の pagination は、まだ試してないのですが、 これは数万件のレコードをクライアント側で抱え込んで クライアント側のスクリプトでページングするものでしょうか? もしそうであると件数と容量が大きいので都合悪いかなと思いまして。 総ページ数(或いは総件数)と 1ページあたりの表示件数と クリックされた要求ページを postで持ってページをクリックする度にsqlで最低限の情報を引き出し表示しようと考えています。 上の質問についてと、もしくはもっと効率的な方法があるという方いらっしゃいましたらご教授願います。 宜しくお願い致します。

  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
回答No.1

1、PEARのPagerが近いといえば近いですが、中間ページのリンクがそこまで細かに制御できるものではなかったです。 2、数万レコードは無理だと思います。クライアント側のスクリプトでAjaxで呼んでくるとかそれぐらいじゃないでしょうか。 とりあえず、 ・総レコード数をSQLのCOUNTで取得する ・現在表示のページ数をPOSTなりGETなりで保持しておく ・総レコード数をページ毎の最大表示件数で割って、ページ数を取得する ・表示ページ番号が1だったら「Prev」のリンクをはずす ・表示ページ番号が総ページ数の最後だったら「Next」のリンクをはずす ・現在ページの番号のリンクもはずす という要件を満たしたものさえ出来れば後は表示上の問題なので、どうにでも出来ると思います。

Claudia
質問者

お礼

回答ありがとうございます。 結局はそうなんですね。自分好みにしたい且つ汎用的なライブラリで済ませたいって難しいですよね。 とりあえずajaxでサーバ連携して作ってみようと思います。

関連するQ&A

  • PHPでページング

    PHPで、1ページに20件表示とか ページング機能をつけたいのですが一向に分かりません。ASPでは、pagesize関数で作れたのですが・・・。 サンプルソースとかありませんか?

    • ベストアンサー
    • PHP
  • PHP MySQL ページング処理

    はじめまして、 現在ページング処理で悩んでます。ご協力お願いします。 PHP4.4.6とMySQLを使用し 1ページ10件 MAXページ99ページ 前次12345・・・のように表示させ・・・の部分をクリックすると データが51件以上 前次45678・・・ データが60件以下 前次23456 データが70件以下 前次34567 のように表示させるにはどのような処理、考え方をしたらよいでしょうか? なんとか自力で 前次12345 は表示、動作できたのですがその先どうしたらいいか解かりません。質問解かりにくいかもしれませんが、どうかお知恵をお貸しください。よろしくお願いします。

    • ベストアンサー
    • PHP
  • Ajaxでページングしたいのですが・・・

    Ajaxでページングしたいのですが・・・ phpとmysqlでページングを行っています。詳しくは下記の通りです。 データの総数は全部で35件あります。 1ページ目(hoge.com/list/?id=1)で 1件目~18件目を表示します。 2ページ目(hoge.com/list/?id=2)で 19件目~35件目を表示します。 1ページ目には『次のページ』と書いた画像を表示させ2ページ目へリンクを張り 2ページ目には『前のページ』と書いた画像を表示させ1ページ目へリンクを張っています。 ページングの動作としては問題ないのですがこのページングをAjaxと連携させるには どうすればいいのでしょうか? できるだけurlにパラメータは付けずにhoge.com/list/としクリックしたリンクにより値を送りそれぞれのページングデータを表示させたく思っております。 検索してみたのですが前もってそれぞれ静的ページを作っておきそれを読み込ませるという方法はあったのですがあくまでも動的に行いたいです。 行い事のサンプルページの紹介でも構いませんので実現できる方法を教えてください。

  • ページング機能の作成

    1ページに9件表示のページング機能をつけたいのですが、 インターネットで色々調べても一向に分かりません。 下記のようなコードだと、 $result = mysql_query("SELECT count(*) as count FROM quotes WHERE active='Yes'"); echo count($result); 数字の 1 しか表示されません。 例として、下記のような感じで2種類(#1と#2)のページング機能を作成したいのですが・・。 #1 < 前のページ | Pages 1 of 5 | 次のページ > 説明: 前のページ、次のページのリンクをクリックすると、そのページに移動する。 Pages 1 of 5 は、全体のページ数のどのページを現在表示しているか。 例えば、全体のページ数が6ページで、そのうちの現在2ページ目を表示しているのであれば、 Pages 2 of 6 と表示される。 #2 ページへ移動: 「」(GO ボタン) 説明: 「」はフォームのテキストフィールドで、その中に移動したいページの数字を入力して GOボタンをクリックすると、そのページへ移動する。 GETを使用するとか、SESSIONを使用するとか、どっちが良いのかも分かりません。 サンプルソースとかありませんか? DBはMySQLです。 初心者ですみません。 何方か教えて頂けると大変助かります。 宜しく御願いします。

    • 締切済み
    • PHP
  • ページング処理

    こんにちわ。今、ページング処理に苦しんでいるものです。 データベースでデータが50件あるとして、10件以上あるときは 「次の10件へ」や「前の10件へ」というリンクをつくりクリックしたときにページ遷移をするというようなページングを実装したいのですが。 考え方がわからず、悩んでおります。 セレクト文で以下のように $strSQL = ""; $strSQL .= " SELECT "; $strSQL .= " * "; $strSQL .= " FROM "; $strSQL .= " BBS "; $strSQL .= " ORDER BY "; $strSQL .= " ID DESC "; $strSQL .= " LIMIT 10 "; $strSQL .= " OFFSET 20 "; 昇順で20行目から10行だけ取り出すということはできたのですが。 ページング処理のロジックがわからないのです。 なにか簡単なものでもいいので、記述などをしていただけますでしょうか?

    • ベストアンサー
    • PHP
  • 掲示板のページング機能について【PHP】

    PHP初心者です。 今掲示板を作っているのですが、ページング機能で引っかかっています。 入力フォーム 掲示板の内容 <<前のページへ  次のページへ>> という形で作成したいと思っています。 色々検索して探してみたのですが、HTMLの中にPHPを埋め込む形式で書かれているものが多く、私はHTMLファイルとPHPファイルに分けて作成しているためあまり参考になりませんでした…。 PHPファイルに書くと、表示させたとき、掲示板の内容とは別にログが表示され、その下にページングが表示されてしまうという感じです…汗 大雑把な質問ですみません。どうしたらいいでしょうか。 掲示板のソース自体は、下のサイトからいただいたもので、これにページング機能を追加したいと思っています。 http://uguisu.skr.jp/html/cgi_no1.html

    • 締切済み
    • PHP
  • Ajaxでのページングについてなのですが...

    現在AjaxにてWebアプリを作成しております。 Webサービスからデータを取得して ブラウザに表示させることはできたのですが、 ページングで悩んでおります。 Webサービスで返ってくるデータは1ページ10件です。 検索フォームからある商品を検索して、返ってきたXMLタグにトータル件数、ページ数があります。 <TotalResults>249</TotalResults> //トータル件数 <TotalPages>25</TotalPages> //ページ数 データ取得の際にpageというパラメーターにページ番号を渡してやれば、 表示できることは分かるのですが、この先に進めません。(恥) Ajaxといいますか、javascriptでのページングはどのようにすればよろしいのでしょうか? 「Google」または、こちらの「教えて!goo」様のようなページングが理想なのですが、 何卒ご指導よろしくお願いいたします。 「追記」 また、上記の25ページ分のデータを一度に取得して表示させることはできるのでしょうか?

  • ページング

    JSPでページング(よくある次へ・前へっていうリンクのやつです。1ページに最大10件まで表示)をしたいのですが、よくわかりません。ネットで検索したのですが見つからず・・。どなたかご教授願えませんでしょうか?

    • ベストアンサー
    • Java
  • JSP+Servletでのページングの常識

    JSP+Servletでのページングの実装方法について伺いたいと思い、 質問いたしました。 現在JSP+ServletでWebページを製作しておりますが、 ページングを行うデータの取得方法で悩んでおります。 データをDBから取得する際は、下記1と2のどちらが標準的な実装方法なのでしょうか??? 条件としては、レコード件数2000件のテーブルからデータを取得し、1ページ10件ずつ表示します。 また、APサーバとDBサーバの通信がボトルネックになることはない場合でお願いします 1.全件を最初に取得しておいて、ページ切り替えの際は、DB接続なしで表示する 2.ページに表示する件数分のみDBから取得し、ページ切り替えの際は、毎回必要な件数分取得する 1の方法ですと、常に全件をキャッシュしていることになり、パフォーマンスが心配です。 2の方法ですと、ページ制御が煩雑になりそうな気がします。

    • ベストアンサー
    • Java
  • ページング機能について

    ページング機能について 以前こちらで質問させて頂き、素晴らしい回答者様がオブジェクト指向でサンプルを作っていただき涙がでる思いでした。 その後オブジェクト指向についてサイトを色々見てクラスなどで管理して呼び出すという素晴らしい方法と出会いました。 しかし私はドットインストールで学んでいる初心者なため、また壁に当たってしまいました。 http://dotinstall.com/lessons/paging_php_v2/8510 前回の質問で頂いたものでオブジェクト指向も一緒に勉強してやると思ったのですが、知識が詰め込み&始めたばかりで完全に詰んでしまいました。 オブジェクト指向はSQLで呼び出すものをクラスに作り実体化させ表示するとは思うのですが、書き方が悪いのかどうもうまくいかず、せっかく頂いたサンプルソースもグチャグチャになり再ダウンロード状態です。 ドットインストールの上記のページング機能と件数表示、これに関しましてオブジェクト指向の場合はどのようにするか教えて頂ける方がいないかと質問させて頂きました。 自分で調べろと言われそうなご質問ですが、色々なサイトで自分なりにやってみたのですが、完全にパンクしてしまったので申し訳ございませんがよろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう