PHP+MySQL入門

ページングの処理2

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
ページングの処理を行うためには、ユーザーの指示に従ってSQLを操作しなければなりません。ここでは、GETで受け取ったページ数をもとに件数を計算する処理を制作していきましょう。
講師:
9:41

字幕

ここではページングの処理の二つ目としまして一つ前のレッスンでやりましたページングの処理の続きのスクリプトを書いていきたと思いますこのレッスンは一つ前のレッスンからの続きとなりますので二つ続けてご覧くださいではプロジェクトを説明していきましょうここでは一つ前のレッスンで作った lesson 02-06というフォルダをそのままコピーし lesson 02-07というフォルダ名に変更しましたそしてデータベースの方を見ていきますここでは 「genre_master」「item_log」「item_table」というテーブルがありこちらの「 item_table 」には先程登録した こちらの情報を含めた16 件のデータが登録されていますこれらのデータベースはこちらの素材ファイルの中にデータベースのエクスポートデータも含めて入っていますのでもし一つ前のレッスンがうまく終わっていないという方はこちらを使っていただいても良いでしょうではスクリプトを記述していきますここではこの sql の「 LIMIT 」というオプションを使うとページングの処理がうまくいくという事が分かりましたですので 次にやらなきゃいけない事というのは例えば ユーザーがトップページを見たい もしくは二ページ目を見たい 三ページ目を見たいというような指示を何らかの方法で与えた時にこの「 LIMIT 」の値がどのように変化するのかを計算しなければならないという事になります例えばここでは 何かここにリンク等を準備する事になるんですけれどもこの url を加工する事でその何ページ目を表示したいかを制御するようにしましょうつまり 例えば index.phpとだけ指定した場合はこれをトップページ つまり一ページを表示するという事にし ここに「 ?page=2 」と指定した場合にはこれは二ページ目を表示したいという事を示しているという風に定義しますこれは特にこのようにしなければならないというわけではなくいわゆる使用の決定の仕方次第になりますのでどのような方法でも構いませんここでは url を加工するという方法で実装を進めていきたいと思いますこの url の後ろの「 ? 」を付け[ page= 」等とキーを付けて「 = 」の後に値を指定する事をGET 方式での値の受け渡しといいます例えば Yahoo 等で情報を検索する時に例えばこちらで「 php 」等のキーワードで検索するとこのように url に「 ?p=php 」といったような記述が見られますこれが GET 方式というもので値が渡されているという事でGET 方式はこのままこの url をブックマークに保存したりもしくは友人などにメールやTwitter 等で送信する事ができるといったメリットがありますここでもこのように url を加工してGET 方式でそのページ数を与える事で 例えば十ページ目を保存をしておきたいというような要求やこのページをスタッフの誰かに伝えたいというような事が簡単にできますのでこの GET 方式というのがここではすぐ出ていますでは次にここで「 page 2 」「 page 3 」等と指定された時に実際にその二ページ目 三ページ目を表示するにはどうしたら良いでしょうかまずここでは index.php を編集していきますそしてまずその値がうまく受け渡されているかどうかというのを確認してみましょうここでは「 Print 」とし「$ _GET 」としますそして「 page 」というキーを指定するとこちら動きを確認してみましょうMAMP が起動しウェブサーバーが起動している事を確認したらこちら「 lesson 02-07/index.php?page=2 」と記述します なおファイル名はこのように省略しても構いません「 /?page=2 」というかたちでも同じページを呼び出す事ができますするとこのように画面の左端に「 2 」と表示されました念のため「3」にしてみましょう今度は「 3 」と表示されていますこのように「 $_GET 」という記述ににキーを指定する事でこの url で指定された内容を取得する事ができますではここではこの「 $_GET 」で取得された情報をまずは「 page 」という変数に記録していきたいと思いますなおこの時 先程のとおり全てを省略し呼び出した場合この場合は「 $_GET 」のこの値は何も値が渡ってきませんしかしここではこのように呼び出された時は一ページ目を表示したいとしますそのためここでは「 if 」としまして「 isset($_GET 」の「 page 」の場合はこのように「 $_GET 」をページとし そうでない場合は一ページ目を指定するという事にしましょうこうする事でこのようにパラメーターを省略した場合もきちんと一ページ目が表示されるようになりますでは次に「 page 」という変数を加工してこの「 LIMIT 」の部分をどのように作り出すかというのをやってみましょうここで例えば一ページ目の時は「 LIMIT 」は「 0 」となります「 LIMIT 」を「 0,5 」とする事で0件目から5件目つまり オフセット無しという事で先頭から表示されますそしてページが「 2 」と指定されたら今度は「 5 」から5件となります「 3 」と指定されたら「 10 」から5件となりますではこの「 0 」「 5 」「 10 」というのはどのように求められているのでしょうかこれは次のような計算式から行いますまずオフセットという変数を準備し ここにこのようにします「 ($page - 1) * 5 」というのがオフセットつまり 読み飛ばす件数を求めるための計算式です改めて考えてみましょうもしページに「 1 」と指定された場合 又はなにも指定されなかった場合一ページ目を表示したいですその場合この「 $page 」には「 1 」が入っていますので「 1 - 1 」でこの計算式は「 0 」となりますそして「 0 * 5 」となればこのオフセットは「 0 」となり読み飛ばさないという事でここは0件となります続いてページを「 2 」とした場合を考えてみますすると「 $page 」には「 2 」という数字が入っていますので「 2 - 1 」で「 1 」ですその「 1 * 5 」となると「 5 」となるのでここでは 5 件となります以後 三ページ目であれば「 2 」なので「 2 * 5 」で「 10 」四ページ目であれば「 3 」なので「 3 * 5 」で「 15 」というかたちになっていくというわけですこの()でここを囲っているのは算数の法則と同じです掛け算と引き算が並んでいる場合掛け算の方が計算の威力が強いので 先にこちらの掛け算が行われてしまいますその後 引き算が行われて計算結果がおかしくなってしまいますのでここでは()で囲って先に「 $page 」から「 1 」を引いてから「 5 」を掛けるという計算の順序になる というわけですではこのオフセットという値をこの sql の中に含めていきましょうこのようになりますこれでページングの処理としてはある程度完成になってきましたこちらまず ページをそのまま表示するとこのページには「 1 」と指定されオフセットはなしになります続いて「 page=2 」とした場合今度は 二ページ目が表示され6 件目からが表示されますそして「 3 」と指定されてれば今度はこのように 15 件が表示され四ページ目を指定すると 16 件目だけが表示されるという具合です引き続きこの後もページングの処理を作っていきましょう

PHP+MySQL入門

MySQLというデータベースはPHPと連携させてウェブサイト上で利用することによってよりその威力を発揮します。このコースではPHPとMySQLを組み合わせたWebシステムを構築する手法を紹介します。コースの後半ではページングの処理の仕方などについて学びながら、具体的に挿入画面や編集画面の作成を行っていきます。

3時間08分 (21 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 2,990
発売日:2014年01月20日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。