【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

ズバリこの教えてgooの右下にある

「1|2|3|/3項」

のようなリンクページのPHPロジックを教えていただけないでしょうか。

A 回答 (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
    • good
    • 0

「PHPロジック」とか「perlでは」とか、そういうものとは離れて考えれば、答えは自ずから見つかると思いますが?



例えば、データが99件あり10件ずつ表示するには、一つ前のデータを表示するためには、
99-10=89、以下同様に、
99-10*2=79
99-10*3=69
というふうに開始番号が求まりますので、そこから10件分繰り返します。
一番最後はきっちり10件あるとは限らないので少し工夫が必要かも分かりません。これもプログラムとは離れて考えてください。

あとは、実際のプログラムを作るだけです。この程度はやさしいですが、もっと複雑なときにはマニュアルで使えそうな関数を調べ、一つで無理ならいろいろ組み合わせてプログラミングします。

右下のところにマウスをあてて下のステータスエリアの表示をみれば納得できると思いますよ。
    • good
    • 0

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の文法については割愛しますが、不明な点はご質問下さい。

この回答への補足

◎セレクト文で
「LIMIT 0,10」は
「LIMIT 10 OFFSET 0」のことでしょうか?

◎pg=int(cnt/ln)とあるのですが$pn、$pdはどこからもってきた変数でしょうか?

◎"select id, name from member limit".$pn-1.",".$ln;
では一つずつしか変動しないのではないでしょうか?

補足日時:2003/10/01 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!