- ベストアンサー
検索プログラムの10件表示について
- PHPの初心者が、サイト内検索を作ろうとしています。
- 絞り込み検索(AND検索)と1ページを10件表示に制限するプログラムを組み合わせています。
- 表示結果に問題があり、どう修正すれば良いかわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。#1です。 さて お礼のコメントありがとうございました。 >「次の10件」の問題は、頭では理解しているつもりなのですがプログラムの具体的な修>正までたどり着けませんでした。。。 大丈夫大丈夫、もう一息ですって(笑)。 「次の10件」の表示の考え方…下に記載するのは ひとつの例ですが… まず ・その件数をすべて表示するには、何ページ必要か(A) ・現在表示されているページ数は何ページ目か(B) を考えると、「次の10件」が表示されていいのは A>B の時だけですね。A<B は そもそもあり得ないし、 A=Bなら最後のページということになりますからね。 そしてAは、 全件数($Size) A -------------------------- 0~10 のとき 1 11~20 2 21~30 3 … になるように、$Sizeを使って表現する。 Bは、$Pより1大きいだけですね。 これを、if 文の条件式に入れてやれば、うまく 動作すると思います。 もし追加でご質問等ありましたら、お気軽にどうぞ。
その他の回答 (1)
- hkd9001
- ベストアンサー率48% (99/204)
こんにちは。 まず、 $Size = 表示すべきデータの総件数 $P = 現在の表示ページ数(0=1ページ目) という解釈でよろしいでしょうか? まず「次の10件」という文字が表示される条件を考えてみると、 表示すべきデータの総件数が、$P*10+10、つまり現在ページの 最終行に表示されるべき「番目数(表示対象となるデータの 何番めにあたるか)」よりも大きい必要がありますね。 たとえば、総件数が22件で、現在のページ数が2($Pの値は1) だったら、表示すべきですね。逆に、総件数が2件で、現在のページ 数が1($Pの値は0)ならば、「次のページ」がないのですから、 表示してはダメということになりますね。 次に、10件表示されてしまうケース。 ソース終わりのほうの -------------------------------------- for($i=$P*10;$i<$P*10+10;$i++){ -------------------------------------- ですが、これだと $P の値がいくつであっても、無条件に10回 処理されてしまうことになりますね。 ですので、 「$i」の値が $Sizeを超えるようであれば そこで終了してループを抜ける というようにプログラムすることが必要でしょう。 いちおう考え方だけカンタンに示してみました。追加でご質問あれば、気軽にどうぞ。
お礼
アドバイスを元にプログラムを修正致しましたら、10件表示される問題は解消いたしました。 有難う御座いました。 「次の10件」の問題は、頭では理解しているつもりなのですがプログラムの具体的な修正までたどり着けませんでした。。。
お礼
時間がかかってしまって誠に申し訳ありません。 アドバイスを元に試行錯誤しまして無事解決いたしました。 この度は本当に助かりました。