PHP+MySQL入門

編集画面の制作2

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
編集画面で編集結果をデータベースに反映するには UPDATE構文を利用します。ここでは、IDの受け渡しの方法を含めて全体を仕上げていきましょう。
講師:
09:38

字幕

ここでは編集画面の製作の二つ目としまして 一つ前のレッスンで作った編集画面でデータを変更した時にそれをデータベースに反映するという動きを作っていきたいと思いますこのレッスンは一つ前のレッスンからの続きとなりますので引き続きご覧くださいではプロジェクトについてご紹介しましょうここでは一つ前のレッスンで作った 02-10 というのを02-11 というところにコピーしましたindex input とupdate.php がありますそしてデータベースの方はこちらphpmysql というデータスペースにgenre master item logitem table というテーブルがありitem table にいくつかのデータが入っているという状態ですなおこちらのバックアップデータ等も含めてこちら素材のフォルダーの中に入っていますので もしまだできていないという場合にはそれを復元して利用いただくと良いでしょうでは製作を続けていきます今こちら 一覧画面からどのデータを編集するのかというデータの引継ぎとそしてその値の再現がうまくできるようになりましたではここで例えば この価格が 250 円に変ったいう時に変更するボタンをクリックした先でどのような事が起こるのかという部分を作っていきますこちら form の action 属性のところがここでは「update.php」つまり 今編集しているこのファイル自身になりますこれは入力画面を製作した時も同様でしたがファイルを増やさずに一つの画面で様々な役割をこなすという方針に乗っ取り この「update.php」がその変更画面の生成も 変更自体の処理も行うというかたちにしたいと思いますそして入力画面の時 ここに「input」で「type="hidden"」というhidden control を仕込みましたそして input の時はここに「name」で「action」とし「value」を「submit」とする事で その action という隠しコントロールの値が「submit」であればフォームが送信されてきているという事であるという風に判断しましたしかし今回 update の画面では少し違った事をやります何故かといいますと update の場合どのデータを対象とするのかというこの今受け渡されているこのデータとは次の画面でやはり分からなくなってしまいます実際にこちらで呼び出してみますこちらで「変更する」ボタンをクリックすると次の画面では「update.php」となっていてこのままではどのデータが対象だったのかというのはもう分からなくなっていますウェブというのはページを遷移した次のページしか情報は渡せないため2 ページ先まで情報を渡すためにはsession や cookie を使うといった手段等を使うかもしくはまた違った方法で処理をしなければなりませんここではこのような処理を使っていきたいと思いますこのファームを送信する前のタイミングではまだどのデータを編集するのかという情報はURL で渡されているので分かりますそのためここでは「id」とし「value」に今渡されてきている情報を記述していきたいと思いますまたこちらも念のためですが「htmlspecialchars」を掛けて安全性を保持すると良いでしょうこれで画面を表示してみましょう一覧画面からある商品を編集しますとこちら MAMP が起動していてウェブサーバー等が起動している事を確認したら こちらですねLesson 02-11 というファイルにアクセスをしますそして例えば「みかん」等を選んで変更をすると この様な画面が表示されますがこの時 html のソースを見てみましょうするとここですね「hiddencontrol」で「name」が「id」となっていて「value」が「3」となっていますこれによりこの「submit」ボタンを押した時に URL には出ていませんがここでは編集対象となるデータの「id」は渡されていますそして話が戻りますけども ここで この「update.php」を編集するにあたってフォームが送信されているかどうかというのを判断する時にこの「id」が渡ってきているかどうかというのを判断すれば良い事になりますでは実際にやってみましょうここではこちら「dbconnect」の下の部分 ここにコメントを一つ入れます「データの変更」とし「if」として「$_POST」の「id」がセットされているかどうかですので 「isset」としますそして念のため「is_numeric」も掛けておきましょうこれはもしかして「id」に数字ではないものが割り振られていた場合それは対象のデータの「id」ではなく何か不正に埋め込まれた値ですそのためここでは「is_numeric」というのを掛けて「id」がセットされていてかつ数字である場合だけ登録の処理を行うという事を行っていきますではこちらに「id」を元にデータベースの変更のスクリプトを記述していきますまず変更のスクリプトですけども「mysql_query」とし「UPDATE item_table」とします そして「SET」とし「item_name」がほにゃらら「item_name_kana」がほにゃららそして「price」がほにゃららというかたちになります最後に「WHERE」とし「id=」となってほにゃららというかたちになるという事ですねではこちらに組み込んでいきますまずこちら「mysql_real_escape_string」として「POST」の「item_name」を埋め込みます続いて続いて こちら 同じく「real_escape_string」でヘッドランナーは「POST」の「item_name_kana」とこうします最後はい これで埋め込みましたで最後にこちら「WHERE」のところこちらも同じようにとしましょうこれで出来上がりましたそして変更が終わりましたら ここではheader ファンクションで「location」として「index.php」でトップページに戻すようにします最後に「exit」で処理を終了しますではこちらで動きを確認しましょうウェブブラウザでこちらですねまず一覧から行きますそして では「りんご」の価格を変更してみましょうこちら「変更」ボタンをクリックするとこのようなかたちでデータが出てきますので価格をちょっと分かりやすく5 千円等に変更してみますすると一覧画面に戻ってこのように「りんご」が 5 千円に変化している事が分かるかと思いますこれで変更画面が出来上がりました変更画面はこのようにまず初めにどのデータを編集するのかという対象を指定し その対象からデータベースを引き出してそのデータを画面に反映させますそしてそのデータが変更された事を認識しmysql_query でupdate の sql 構文をmysql になげれば変更画面が出来上がるという事です若干手順が多いですけれども 一つ一つ確認しながら進めるようにしてください

PHP+MySQL入門

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

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

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

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

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