[前][次][番号順一覧][スレッド一覧]

mysql:3451

From: Hiroyuki Hasegawa <Hiroyuki Hasegawa <admin@xxxxxxxxxx>>
Date: Tue, 27 Mar 2001 19:47:34 +0900
Subject: [mysql 03451] Re: 「次の○○件」の作り方

はせがわです。

table name : test
No  | data
------------
1   |
2   |
3   |
4   |
5   |
6   |
7   |
8   |
9   |
10  |

とあったとして、
これを5件ずつ表示するCGIが、
test.php3
だとしましょう。

たとえば仮に5件ずつ表示するとして
1ページ目に表示する際のSQLは、普通に呼ぶと
select * from test order by No limit 5;
ですね。これで1〜5件だけ取得されるでしょう。
そして、ループにより各行を表示すると思いますが、
ループ終了時、最後に表示したNoを(たとえば)$lastnumという変数に
保存したとします。ここでいえば、5ですね。

そして、test.php3の表示時に、次の5件のリンクを出力する
ことになると思いますが、
printf("<a href=\"test.php3?next=%d\">次の5件</a>",$lastnum);
(C言語チックですんません)
こんな要領で、リンクを張ります。
要は、再度test.php3を呼び出しますが、そこで最後に出力した
番号をパラメータとして渡すように設定するわけです。

すると、test.php3を再度呼ばれますが、そのときには
$nextに値が入っていますよね。

ですので、test.php3で呼び出すべきSQLは以下のようになります。
select * from test where No > $next order by No limit 5
これで、次の5件を取得できますよね。
(ここでいうNoが5以上の5件だから、6〜最後まで)

これは、何らかの理由で、行が削除されていて、Noが連続していなくても、
問題ありません。

まあ、$nextに値が入っていないときはゼロを代入するように冒頭に書いて
おけば、初回呼び出し時(nextパラメータがない場合)にも問題ありません。

さらに、呼び出した総数が、5件(limit値)より少ない場合は、最後まで
いってるので、そのときは、「次の○○件」というリンクは表示しないよ
うにすれば綺麗です。

わかりにくい説明ですね(苦笑)



[前][次][番号順一覧][スレッド一覧]

      3445 2001-03-27 18:10 [崎山 宏之  <sakiyam] 「次の○○件」の作り方                  
      3446 2001-03-27 18:31 ┣[Akihiko Shinohara <s]                                       
      3447 2001-03-27 18:34 ┣["Akinobu YAMAMOTO" <]                                       
      3449 2001-03-27 19:18 ┃┗[崎山 宏之  <sakiyam]                                     
      3482 2001-03-29 11:04 ┃ ┗["Akinobu YAMAMOTO" <]                                   
      3483 2001-03-29 13:02 ┃  ┗[崎山 宏之  <sakiyam]                                 
->    3451 2001-03-27 19:47 ┗[Hiroyuki Hasegawa <a]                                       
      3461 2001-03-28 14:44  ┣[崎山 宏之  <sakiyam]                                     
      3466 2001-03-28 16:27  ┃┣[Hiroyuki Hasegawa <a]                                   
      3468 2001-03-28 16:57  ┃┃┗[崎山 宏之  <sakiyam]                                 
   @  3467 2001-03-28 16:46  ┃┗[Toyoshima Hiroshi <t]                                   
      3469 2001-03-28 17:23  ┃ ┗[崎山 宏之  <sakiyam]                                 
      3470 2001-03-28 17:40  ┃  ┣[Toyoshima Hiroshi <t]                               
      3477 2001-03-28 23:09  ┃  ┃┗["崎山 宏之" <sakiya]                             
      3471 2001-03-28 17:41  ┃  ┣[mohri <mohri@xxxxxxx]                               
      3476 2001-03-28 20:30  ┃  ┗[Toyoshima Hiroshi <t]                               
      3475 2001-03-28 20:17  ┗[とみたまさひろ <tomm]