• ベストアンサー

PHPでページング

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

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

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

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

セッション管理を使ってやるのが一般的です。 この質問では、何のデータを表示するのか分かりませんが、例えば、データベースにとろくされているデータを表示するときは、SQL文とオフセットをセッションに記憶させておいて、次ページを表示します。 <?php $offset=0; $size=20; session_start(); session_register("sql"); $sql="select * from table_name LIMIT $size OFFSET $offset";  :  : $offset=$offset+$size;  :  : の様な形です。(省略しすぎ?(^^;)

Miki3548
質問者

補足

DBからのデータの表示なのですが、 LIMIT OFFSET というのは・・・?? 今調べてみたのですが SQLの構文とかですか?? こんなことも分からなくてお恥ずかしい限りです・・・。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

DBは何でしょう? もしPostgreSQLであれば、私が作った、「次を表示クラス」を差し上げますが。 メールアドレスも必要ですが。

Miki3548
質問者

お礼

PostgreSQLです。 ぜひお願いします。 質問者データのコメントのところにアドレス載せました。 そこに、メールお願いいたします。

関連するQ&A

  • php ページング

    php ページング php勉強中のものですが ページングについて調べてはいるものの 中々ピンとこず 何か簡単なサンプルコードを教えていただけないでしょうか。 データ表示は10件ほどで データの量は 決まっていないです。 よろしくお願いします。

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

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

    • 締切済み
    • PHP
  • phpでページング処理の書き方

    環境:php+mysql サイト内検索をphpで書いてます。 ■やりたいこと 検索結果が10件として1ページの検索結果数を3件とした場合 ページングは4ページまでとして、最終ページの4ページ目で 「次へ」のボタンを非表示にしたいです。 ■現状 検索結果は表示されますが、検索結果ページで 「次へ」 や 「戻る」 ボタンをつけて動作する際、いつまでの「次へ」やボタンが表示されページングできてしまいます。。 実際に書いている処理 <?php if ($num > 3){//検索結果が3件以上でページングが表示される if($page>0){ echo "<a href='./re.php?key={$a}&pages=".($page-1)."'>前の3件</a>"; } echo "&nbsp;&nbsp;|&nbsp;&nbsp;<a href='./re.php?key={$a}&pages=".($page+1)."'>次の3件</a>"; } ?> if ($num > 3)で何か処理を書かなければならないと思いますが、、 アドバイスいただければ幸いです。 よろしくお願いいたします。

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

    いろいろ参考にしてページングについて考えているのですが、なかなか正常に動作しません。 1ページに10件のデータを表示させる ページング処理をASPとMYSQLを使用して考えています。 どなたかご教授ください。 よろしくお願いします。

  • 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/としクリックしたリンクにより値を送りそれぞれのページングデータを表示させたく思っております。 検索してみたのですが前もってそれぞれ静的ページを作っておきそれを読み込ませるという方法はあったのですがあくまでも動的に行いたいです。 行い事のサンプルページの紹介でも構いませんので実現できる方法を教えてください。

  • 掲示板のページングができません!

    今掲示板を作っていて、いろいろと検索かけてみたのですが、ページングには$_GETまたはセッションを使えばできると理解したのですが、セッションの使い方が解りません;;(教えていただけたら幸いです) なので、$_GETを使ってみることにしました。 例えば、 bbs.php(書き込み表示用)では、1ページ5件表示したいと思います。 5件を越したら、次のページに行くために、「1 2 3」 といようにしたいです。 いまいち$_GETの使い方もわからないのですが、とのようにプログラムを書けばできるのでしょうか? 簡単なソースかいていただけると助かります><; http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q111... ↑と同じような質問なのですが、ソースが書いておらず、理解できなかったので質問させてもらいました!

    • ベストアンサー
    • PHP
  • ページングについて

    ajaxのブログパーツにページング機能を入れるにはどうしらいいのかまったくわからず困っています。PHPのサンプルも文字数が多すぎてのせられません。どなたかお力になっていただける方はいないでしょうか。

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

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

    • ベストアンサー
    • PHP
  • ページング機能の実装について@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
  • ページングについて

    <?php /* データベース関連のデータをインクルード */ /* 1ページあたりの表示件数を設定 */ $PAGESIZE = 5; /* MySQLに接続 */ /* データベースを選択 */ if (isset($_GET["page"])) { $page = $_GET["page"]; $tcnt = $_GET["tcnt"]; } /* 初めて呼ばれた時、総件数を取得 */ if (!isset($page)) { $sql = "select count(*) as cnt from board"; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); mysql_free_result($rst); $tcnt = $col["cnt"]; /* 現在のページを初期設定 */ $page = 1; } /* 総ページ数 */ $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "<b>$tcnt</b>件が投稿されています。<br>"; $pagehead .= "<b>[" . ($PAGESIZE * ($page - 1) + 1) . "-"; /* 最終ページより前のページ */ if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "]</b>を表示"; } /* 最終ページ */ else { $pagehead .= "$tcnt]</b>を表示"; } /* 1ページ分だけ抽出するSQL文の組み立て */ $sql = "select * from board order by no desc limit "; $sql .= $PAGESIZE * ($page - 1) . ", $PAGESIZE"; /* 結果セットを取得 */ /* 結果セットからデータの読み込み */ /* 結果セットを破棄して接続を閉じる */ /* ページのナビゲーションを追加 */ if ($page > 1) { $page2 = $page - 1; $body .= "<a href = 'board.php?page=$page2&tcnt=$tcnt'>" . "<img src = 'img/arrow_left.gif' border = '0'><font class = 'brown'>前の<b> $PAGESIZE 件</b></a>&nbsp;&nbsp;</font>"; } if ($totalpage > 1 and $page < $totalpage) { $page3 = $page + 1; $body .= "<a href = 'board.php?page=$page3&tcnt=$tcnt'><font class = 'brown'>次の<b> $PAGESIZE 件</b>"; $body .= "<img src = 'img/arrow_right.gif' border = '0'></a></font>"; } ?> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="../Top/design.css"> </head> <body> <?= $pagehead ?> <?= $body ?> </body> </html> 長くて申し訳ありません。 コメントであらわした内容で、掲示板の投稿一覧を作成しています。 投稿一覧をページングして、表示させようとしているのですが・・・。 何度も次ページのリンク(ページのナビゲーション)を押さなければ、遷移しないのです・・・・。 どうか、わかる方ご教示願えないでしょうか。宜しくお願い致します。

    • 締切済み
    • PHP

専門家に質問してみよう