はじめまして、
現在ページング処理で悩んでます。ご協力お願いします。
PHP4.4.6とMySQLを使用し
1ページ10件 MAXページ99ページ
前次12345・・・のように表示させ・・・の部分をクリックすると
データが51件以上 前次45678・・・
データが60件以下 前次23456
データが70件以下 前次34567
のように表示させるにはどのような処理、考え方をしたらよいでしょうか?
なんとか自力で 前次12345 は表示、動作できたのですがその先どうしたらいいか解かりません。質問解かりにくいかもしれませんが、どうかお知恵をお貸しください。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
#3です。
もう一度読み直したのですが、、
>前次12345・・・
は1をクリックした場合どこへ飛ぶのでしょうか。
現在1ページ目が表示されているとすれば前という表示もあるとおかしいので、
次23456・・・
となるのではないでしょうか?
2ページ以降を表示しているとしても1というのはどういう状況でなら表示するのかが思い浮かびませんでした。。
その辺が気になったのですがとりあえず自分の解釈の前提で説明させていただきます。参考程度に目を通してください。
どこまで出来ているのかちょっとわからないのでどこから説明したらよいのかもわかりませんが、私はSQLにLIMITをかけて処理をする方法を普段使っています。
最初のページからスタートした場合私の場合なら
次 2 3 4 5 6 ・・・
という表示にします。
次と2は同じリンクが張られます。
10件ずつ表示することを前提に、
LIMITに使うオフセット数は
2→offset=10
3→offset=20
4→offset=30
以下6まで続く
となります。
つまり(ページ数-1)*10がそのページに張られるリンクのオフセット数となります。
で本題というか
60<データ件数<=70 なら 前次34567
の考え方ですが、仮にデータ件数が68だとするとページ数は7ですよね。
なので(7-1)*10=60が最後のページのオフセット数です。
表示させたいのは
34567
なのですが、表示が34567となるためには3の前にある2をクリックした時ですよね。
ということは2に張るリンクのオフセット数と同じオフセット数ということになります。
長くなってしまいましたが
・・・に張るリンクのオフセット数は
最後のページのオフセット数 - (10*5)
となります。
この例の場合は60 - 50 = 10
ですね。
$onepage = 10; //1ページの表示件数
$self = $_SERVER['SCRIPT_NAME'];
$lastofst = ($lastpage-1)*10; //最終ページオフセット
$jumpofst = $lastofst - 50; //リンクに張られるオフセット
//リンク先文字列生成
$jump = $self . "?ofst=" . $jumpofst . "&onepage=" . $nepage;
$str .= '<a href="'.$jump.'">'."・・・".'</a>';
echo " ".$str;
こんな感じかと思います。
34567自体の表示は
最後が7とわかればスタートが7-5から1を加えながら7になるまでforで生成してあげればいいですよね。
No.3
- 回答日時:
>データが51件以上 前次45678・・・
ここの意味がわからないのですが・・・。
下の二つは
50<データ件数<=60 なら 前次23456
60<データ件数<=70 なら 前次34567
ということですよね。
要は最後のデータを表示するページを合わせて後ろから5ページのリンクということでしょうか。
それならできそうな感じがしますけど。。
でも
>MAXページ99ページ
ということは10×99=990なのでデータ件数は991~1000の間の件数あるってことになってしまうんですけど。。
随時増えていくデータで、増え続けても最大1000件までってことなんでしょうか。
日本語は難しいです。。
この回答への補足
日本語下手ですいませんです。
データが51件以上 前次45678・・・
一旦おいといて、
50<データ件数<=60 なら 前次23456
60<データ件数<=70 なら 前次34567
だとどのように考えたらよろしいでしょうか?
よろしくお願いします。
>MAXページ99ページ
データが1000件以上あった場合99ページということなのですが
本当に日本語下手ですいません
No.2
- 回答日時:
pearのpager なんかはいかがでしょうか?
http://www.go-pear.org/manual/ja/package.html.pa …
やりたいことは、これのスライド型じゃないですか?
参考URL:http://www.go-pear.org/manual/ja/package.html.pa …
No.1
- 回答日時:
早速貴重な情報ありがとうございました。何度も読み返し前次12345の処理はうまくいきました。
色々自分で考えテストしたのですが
・・・の処理については解決できませんでした。どのように考えたらよいのでしょうか?ご協力お願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- IT・エンジニアリング ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:29
- Visual Basic(VBA) ★お手上げ状態です。助けてください。ActiveReportについて 1 2023/08/20 04:27
- Visual Basic(VBA) ActiveReportのサブレポート機能を利用したときに1ページ目の1サブレポート目が表示されない 1 2023/08/19 06:10
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・【大喜利】【投稿~12/6】 西暦2100年、小学生のなりたい職業ランキング
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・遅刻の「言い訳」選手権
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
MSFlexGridのデータを初期化し...
-
PHP+SmartyとAjax
-
VB6.0とスプレッドシート
-
アクセス+VBA 最適化
-
Mysqlで2つのtable間のデータ移...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
shシェルスクリプト 空白行の...
-
EXCEL、マクロ-改ページ行番号...
-
findstrのerrorlevel
-
URLのパラメータをGETのままで...
-
VB.NETからVBAマクロ(引数)を呼...
-
ログイン画面をはさんだ後、自...
-
バッチファイルでpingの結果を...
-
小数点以下0の非表示
-
phpでcookieがうまく保存されない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
DTOとEntityの差は何ですか。
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
ActiveReportのサブレポート機...
-
「外部データの取り込み」とい...
-
XMLHttpRequestでウェブページ取得
-
VB.NET 2017の勉強中です。 今...
-
C言語で地図を描きたい
-
C#でのForm間のデータ受け渡し...
-
MSFlexGridのデータを初期化し...
-
Windowsのマクロプログラムで、...
-
VBA内でのGetPixelを使用した時...
-
Outlookで2年日記はできる?
-
INIファイルに一括書き込みを行...
-
json_encodeが表示しない
-
VB6.0とスプレッドシート
-
ADOを使用してExcelファイルを...
-
VB6でDBからクリップボード経由...
おすすめ情報