• ベストアンサー

PHPでページリンク表示方法

ズバリこの教えてgooの右下にある 「1|2|3|/3項」 のようなリンクページのPHPロジックを教えていただけないでしょうか。

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

  • ベストアンサー
  • coco1
  • ベストアンサー率25% (323/1260)
回答No.3

すみません、ちょっと漏れがありました。 "select id, name from member limit".($pn-1)*10.",".$ln; として、pnを十倍しなければなりませんねm(__)m 変数は、事前に宣言する必要もなく、必要になったところで記述すればよいのです。 あと、"<a href=honyarara.php?$pn=".$pn.">".$pd のところは "<a href=honyarara.php?pn=".$pn.">".$pd でした。重ね重ねm(__)m

その他の回答 (2)

回答No.2

「PHPロジック」とか「perlでは」とか、そういうものとは離れて考えれば、答えは自ずから見つかると思いますが? 例えば、データが99件あり10件ずつ表示するには、一つ前のデータを表示するためには、 99-10=89、以下同様に、 99-10*2=79 99-10*3=69 というふうに開始番号が求まりますので、そこから10件分繰り返します。 一番最後はきっちり10件あるとは限らないので少し工夫が必要かも分かりません。これもプログラムとは離れて考えてください。 あとは、実際のプログラムを作るだけです。この程度はやさしいですが、もっと複雑なときにはマニュアルで使えそうな関数を調べ、一つで無理ならいろいろ組み合わせてプログラミングします。 右下のところにマウスをあてて下のステータスエリアの表示をみれば納得できると思いますよ。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.1

phpとmysqlなど一部のデータベースを組み合わせるとき、select文に表示行数の制約を加えることができます。 例えば、 select id, name from member limit 0,10 とすると、頭から10行を表示する、という意味です。 この0の部分を10、20と移動することにより、表示を開始するレコード番号を代えることができます。 さて、該当レコード数をcnt、一度に表示する行数をlnとすると、表示に必要なページ数pg=int(cnt/ln)となります。表示させたいページ番号はpn、その画面上の表示をpdとすると、先のクエリは次のように書き直せます。 "select id, name from member limit".$pn-1.",".$ln; で、リンクですが、$pnの部分にページ番号を代入してやればよいのですから、 "<a href=honyarara.php?$pn=".$pn.">".$pd といった形になります。 phpの文法については割愛しますが、不明な点はご質問下さい。

fm0606
質問者

補足

◎セレクト文で 「LIMIT 0,10」は 「LIMIT 10 OFFSET 0」のことでしょうか? ◎pg=int(cnt/ln)とあるのですが$pn、$pdはどこからもってきた変数でしょうか? ◎"select id, name from member limit".$pn-1.",".$ln; では一つずつしか変動しないのではないでしょうか?

関連するQ&A