前回ツイート機能を作りました。今回はツイート一覧機能を作っていきます。作ってみたいですがどういう仕組みかパッと浮かばないので、昔ながらの10件ずつ表示してページ送り。ような仕様で作っていこうと思います。一覧表示って?一覧表示の機能に必要なものって何かわかりますか?DBからデータを取ってくるただし、一気に全部取ると表示に負荷がかかるので(数万件あると大変ですよね)一定数ずつとってくる。取ってきたデータを繰り返し表示していく次のページ、前のページ、先頭のページ、末尾のページへの遷移を考える表示したデータをクリックすると、該当ツイートの詳細ページに遷移するざっとこんなところでしょうか。ページングって?↓こういうやつですひとつのページにデータを全件表示してしまうと、読み込みが終わらない可能性ありますよね。1ページに表示するデータを制限することで、待ち時間少なく表示させることができます。その代わり、ユーザーにページをめくってもらう必要が出てきます。表示の一番下までいくと、自動的に新しいデータが出てくるページングがスマホアプリとかだと主流になってきてますが、基本的な考え方は同じだと思います。ページネーションの仕組みプログラム的な仕組みを考えていきましょうしっかり考えると単純なことの積み重ねでできているのがわかります。指定されたページが有効ページ範囲にあるか判定なければ1ページにするなどが必要。いう表示それぞれのリンクを作成する最初のページ、前のページ、次のページ、最後のページなど※割った余りが出たらページ数+1するあるいは、少数が出たら切り上げる。いう処理が必要ですその結果↓こういうのができるわけです。ページ指定のリンクはlist.php?p=2のようにgetのパラメータで渡せばいいです。ツイート一覧機能の実装それでは見ていきましょう。ページのバリデーション。ページのバリデーション。href="./tweet_list.php?p='.$totalPage.'">>></a>';}?>色々と書いてますが少しずつ見ていきます。ページのバリデーション。ページのバリデーション。href="./tweet_list.php?p='.$totalPage.'">>></a>';}http://localhost:8080/list.php?p=2のようにgetのpでページ数を受け取っています。getで受け取ってるし、何か表示する部分があるのでhtmlspecialchars()で消毒する必要があるわけですね。'ただいま障害により大変ご迷惑をおかけしております。'ただいま障害により大変ご迷惑をおかけしております。(*)で純粋にデータ件数取ってます。つぎはデータ件数を使って末尾のページを計算しています。VIEW_RECORDS);VIEW_RECORDSってのは1ページに表示する件数の定数です。(自分で勝手に定義してます)ceil()がポイントで、割り切った少数を切り上げています。PHPの場合の割り算は勝手に少数で計算するようですね。(バージョンによるものかもしれません。5.3末尾が5.3ページというのは誤りで、本当は6ページになるはず。ページのバリデーション。ページのバリデーション。組み立てる部分ですね。href="./tweet_list.php?p='.$totalPage.'">>></a>';}汚い書き方で本当に気持ちが悪いんですが、ある程度仕方ない気がします。いうのは末尾のページの場合はリンクをつけたくないという処理が入ってて見づらくなってます。href="./tweet_list.php?p='.($page+1).'">次</a>キモはここです。現在のページに-1して前のページへのリンク現在のページに+1して次のページへのリンク簡単ですね。href="./tweet_disp.php?id={$tweet['id']}">詳細</a></div>EOD;}データを取得して、取得したデータを繰り返し表示しているだけですね。表示部分は関数化して見やすくしています。データの取得はgetAllTweetDatasWithLimitという、指定ページのデータを配列で取ってくる関数を作りました。'ただいま障害により大変ご迷惑をおかけしております。'ただいま障害により大変ご迷惑をおかけしております。10データの取得はこのようなSQL文になります。◯番目のデータから、◯件取得するという命令なので、上記の場合は0番目のデータから、10件取得する。VIEW_RECORDS;実際のソースはこうなっていて、$page:指定ページ、VIEW_RECORDSは表示件数です。10と、2ページ目を指定した場合は10番目のデータから取得できるようになっています。いう汎用的な考え方がプログラムを作る上では超重要になってきます。まとめざっと解説しましたが、一覧の表示って結構大変なんですね。これもパターンが決まってるので、何度か作って慣れてしまえば怖くもなんともないなって感じました。・・・本当に泥臭いプログラムでした。フレームワークやライブラリを使えば一行で書けたりするんだろうな。思いながら作ってましたが、こういう基本的な部分は一回は自分で作っておくと仕組みが理解できていいですね。コメントをキャンセルメールアドレスが公開されることはありません。*ウェブサイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。不安しかありませんがハマりながら作っていきます。やればなんとかなるでしょうし、やらなければなんともならないですからね。前回ログイン機能を作りました。今回はプロフィールの編集機能を作っていきます。これも基本的な部分ですね。前回プロフィール編集機能を作りました。今回は投稿(ツイート)機能を作っていきます。メインとなる部分ですね。前回ユーザーの新規登録を作りました。今回は登録したユーザーでのログインを作ります。どんなサービスでも存在するログイン機能。プログラムを書き出すと漂流してしまうので道しるべを書きます。Reserved.Top。