PHP+MySQL入門

ページングの処理3

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
URLを加工してページングを行う場合、ユーザーがURLを加工するには手間がかかってしまうため、リンクなどを準備するとよいでしょう。しかし、リンクは単に張っただけでは不正なページに移動してしまう場合もあります。ここでは、正しいリンクの張り方を紹介します。
講師:
08:56

字幕

続いてページングの処理の三つ目としましてここまでに作ったスクリプトをいよいよ仕上げていきたいと思いますこのレッスンは一つ前のレッスン及びもう一つ前のレッスンの続きとなりますので三つ続けてご覧ください素材ファイルの方もご説明していきましょう今回は前回作ったこちらのスクリプトをそのままコピーしてLesson 02-08 としましたそしてデータベースの方はこちらですねItem table の方に 16 件のデータが入ってるという状態ですItem log と genremaster というテーブルもありますそれぞれ素材群はこちら 素材ファイルの中にエクスポートファイルも含まれていますのでこちらを利用していただくと良いでしょうでは製作を続けていきますここで URL をこのように加工する事で次のページへ前のページへという事で3 ページ目 2 ページ目等とページングができる事がわかってきましたしかし URL をこのように手で書き換えているのでは使い勝手が良いとは言えませんので リンク等を準備して次のページ 前のページへ行きやすくしてあげると良いでしょうではまず html を加工していきますここでは Lesson 02-08 のindex.php を編集してこちらに table のタグがここに書かれていますけれども そのtable のタグのすぐ後の部分 divこの div はこちら「content」という ID が振られているdiv ですがこの中に記述していきましょうここでは「p」としまして「style」で「margin」の「top」を 10 ピクセルぐらいとりますそして「text align」を「center」として ここに「前のページへ」それから「次のページへ」っていうかたちでリンクを貼る事にします画面の方を確認してみましょうMAMP でこのようにウェブサーバー等が起動している事を確認したら今回はこちら Lesson 02-08 の「/」という URL になりますするとこのようにページングの html がまずは出来上がりましたではここにリンクを貼ってみましょうまずは次のページへ行くためのリンクを貼りますここではこちらにリンクを貼っていきます「a」の「href」とし「index.php?」として「page=」でまず ここでは仮に「2」としたいと思いますそしてこのようにリンクを貼りましょうでは見ていきます 同じ URL を再度表示するとこのように「次のページへ」というリンクが準備されますこれをクリックするとこのように次のページに移動しますではさらにこの「次のページへ」をクリックすると次は 3 ページ目へ行きたいんですが今はまだこちら仮の「2」という数字が入っているため3 ページ目へは移動できませんでは今表示されているページを元にその次のページを表示するというかたちにするにはどうしたら良いでしょうかそれにはこの冒頭で使った 前回のレッスンで出てきましたが こちら「$page」という変数を使っていきますここではこの「2」の代わりにここに「php」を埋め込みます「print」として「$page+1」というのが次のページへのリンクになりますでは実際に確認してみましょうこちら「page=2」の状態で「次のページへ」のリンクを見ていきますとクリックするとこのように「page=3」となりましたさらに「次のページへ」をクリックすると今度は「page=4」となっていますではまだこちら作り込まないといけませんけれども 先にこちら「前のページへ」のリンクも準備しましょう「前のページへ」のリンクはこちら「次のページへ」が分かればそれほど難しくはないかもしれません「index.php?page=」までは一緒ですが「print」として「$page-1」というのがリンク先になりますこちらで動きを確認してみましょうこれで「前のページへ」をクリックするとこのように今度は 3 ページ目に戻りますさらにクリックすると こちらも戻るさらにクリックすると 1 ページ目まで戻る事ができるというわけですさてここで今 1 ページ目 最初のページが表示されていますが ここでさらに「前のページへ」をクリックするとどうなるでしょうかするとこのように SQL のエラーが発生してしまいます何故かというと こちら今「'-5,5」と出てますがこれはどこでエラーが出てるかというとこの部分 「$offset」が「-5」となってしまったため このLIMIT のオプションにはマイナスの値を指定する事ができないためにエラーが発生していますこれはこの「$page」が今「0」になってしまいましたすると「0−1」で「-1」となり「*5」するために「-5」となってしまってoffset が「-5」になっているわけですこの一番最初のページが表示されている時は「前のページへ」のリンクはつけてはならないという事がわかりますのでそれをスクリプトで実装していきましょうここでは見やすくするために行をそれぞれ改めていきますこのようにして こうしましょうではこちら「前のページへ」のところをif 構文を仕込んでいきます「if」とし「page」が「1」だった場合にはこちらリンクを貼らないようにしなければなりませんので例の「href」は無しにして「前のページへ」とだけ記述するようにしますそしてそうでない場合は リンクを設置するという動きにしましょうこちらで動きを確認してみますこちらまず「page=1」の状態で再度ページを表示すると「前のページへ」のリンクが無くなりましたそして「次のページへ」のリンクをクリックすると「前のページへ」のリンクができるようになっていますクリックするとなくなるという状態これはこの「page」こちらで受け取っているこの変数の値が「1」である場合 つまり今表示されているページが1 ページ目である場合はリンクを貼らないというかたちにしていますそしてそれ以外の場合はリンクを貼るというかたちにするために このように「前のページへ」のリンクが制御できるようになったという事ですこれと同じことは「次のページへ」の方でも言えますこちら「page=5」となりましたが5 ページ目にはもうすでにデータがありませんするとこのようなかたちになってしまいあまり見栄えが良くありませんのでこちらも同じように4 ページ目まで行ったら次のページは表示されないようにしたいと思いますしかし実は これは単純なスクリプトでは解決できません例えば 今の法則でいけば ここにif page が「4」だった場合はリンクを貼らないそしてそうでなければリンクを貼るというスクリプトにすれば一見するとうまくいくように思えますこのようにリンクが貼られませんしかしこのままデータを増やしていって次の 5 ページ目が実際に出来た時にこれは困った事になります5 ページ目が存在するのにも関わらず4 ページ目からは「次のページへ」のリンクが貼られなくなってしまいますのでここではこういった作りではなく次のページがあるかないかをデータベースから判断するようにしなければならないというわけですこれについては次のレッスンでやっていきましょう

PHP+MySQL入門

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

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

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

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

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