PHP+MySQL入門

編集画面の制作1

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
既存のデータを編集する画面を作成するには、編集の対象となるデータを特定し、既存の情報を呼び出して編集しやすい画面を制作します。ここでは、その手順を紹介しましょう。
講師:
12:15

字幕

ここでは変更画面の製作としまして既存のデータを変更するという画面を製作していきたいと思いますそれではプロジェクトをご紹介していきましょうここでは lesson 02-10 というフォルダに index という一覧画面input という登録画面とそして新たに update.phpというファイルが増えていますこのファイルは登録画面とかなり似た画面なんですが こちらこのような形で「商品情報の変更」としてこういったフォームのhtml が準備されていますそしてデータベースの方ですけれどもこちら「 genre_master 」「 item_log 」「 item_table 」というそれぞれのテーブルが準備されていてこのように「 item_table 」にはいくつかのデータが登録されていますではこちらのデータを元に変更画面を作っていきましょうなおデータベースのデータ等はこちら素材フォルダの中にこちら lesson 02-10 というところに update.php やphpmysql.sql というファイルが存在していますではまず update.php を作っていくわけなんですがその前に index.php を編集していきましょうここではどのデータを編集するのかというの事を次の画面にこちらの 編集画面に渡すためにリンクを貼っていきたいと思いますこの一番最後に準備した こちら空の「 td 」に変更という事でこちらに update.php へのリンクを貼っていきます一度これで画面を確認してみましょうMAMP を起動し ウェブサーバーが起動されている事を確認したらこちら lesson 02-10 ですねindex.php にアクセスをしますするとこのように「変更」というリンクがそれぞれ準備されていますそのためこちらをクリックするとこのように「変更画面」にジャンプするんですが ただこの時に気をつけなければいけないのは今の時点ではこの update.phpというファイルに渡ってきて時にどのデータを変更したいのかというのが判断できません例えばここで「みかん」を変更したいという事でリンクをクリックしてもこの画面は「みかん」をクリックされたのかそれとも「いちご」をクリックされたのかというのは全く理解できないわけですそのため 次のこの update.php のファイルにどのデータを変更したいという事を渡さなければなりませんその時便利なのはこちらprimary key に設定しているitem の「 id 」というフィールドになりますこの「 id 」というフィールドを変更ボタンをクリックした時に次の画面に渡してあげれば その「 id 」を元にどの情報なのかという事を判断する事ができますではまずはそれを実装していきましょうここでは「 ? 」として「 id= 」というパラメータで作りますそして 「 print 」として「 id 」はこのように「 $row 」という変数に伝送配列で「 id 」というのが書かれていますのでここでは「 $row['id'] 」と記述する事ができますではこちらで改めて一覧画面からアクセスしてみましょうすると例えば「いちご」をクリックするとこのように「 ?id=1 」となりますし次の 4番の「あおりんご」をクリックすると「 id=4 」となりますではそれを受けて update.phpではどのような処理を行っていくべきでしょうかまずはそのフォームの内容を受け取りましょうここでは「 $_GET 」としてこのように「 id 」というのを指定すれば受け取ったものを取得する事ができますここではまずは「 print 」という風に記述して実際に受け取れているかどうかを確認しましょう「 1 」番をクリックするとこちら左上に「 1 」と出ますし「 5 」をクリックすれば「 5 」番が出ますきちんと受け取れているようですこれでどのデータを変更したいかというは分かりましたので例えばここで「いちご」の商品の「価格」が「120」円から「125」円に改定されたという場合「125」と入れて「変更する」ボタンをクリックしたりする事になりますしかしいくら変更画面だからといってもこのように何も表示されていない画面に変更する場所だけを記入してボタンをクリックするのはなかなかユーザーの使い勝手が悪いかもしれませんそこでここでは最も分かりやすいものとして こちらクリックした時に これらの情報を一度このフォームの中に反映させて例えば ここでは「価格」が「120」なので一度こちらに反映させておいてこのような状態ですねそして変更したいデータに関してだけ変更すればそのままデータが変わるという作りにすると非常に親切かもしれませんそれでまずはこのフォームに内容を再現するというところから作っていきましょうこのフォームに内容を再現するためには改めてデータベースからそのデータを引き出さなければなりません今受け取っているこの「$_GET['id'] 」を使って変更対象のデータをデータベースから持ってきましょうでは まずはこちらデータベースの共通接続プログラムというものがこちらに準備していますこの dbconnect.php をinclude しましょうそして変更対象となるデータベースのデータをここでは取得していきます「 $rows 」に対して「 mysql_query 」「SELECT*FROM 」は「item_table 」ですそしてここで「 WHERE 」としまして「 id= 」としますそしてここにフォームから渡された「 id 」の情報を指定するわけですではここでは安全性を考慮して「 mysql_real_escape_string 」ファンクションもかませて「 $_GET('id') 」を取得しますこれで編集の対象となるデータベースを引き出す事ができているはずですではこれを「 $row 」とし「mysql_fetch_assoc」で「 $rows 」から引き出しますここでは「 id 」で絞り込んでいるため確実に一軒しかヒットないはずですそのため WHILE 構文などは必要なく直接「 mysql_fetch_assoc 」するだけで良い事になりますこれでこの「 $row 」という変数の中に伝送配列で値が格納されているはずですので この値を使って再現をしていきましょうこちらテキストフィールドの場合は 簡単ですこのように「 print 」として「 $row['item_name'] 」としてあげれば これで一覧画面に戻りまして例えば「いちご」をクリックしますするとこのように「いちご」が反映されるというわけですねただここでさらに安全性の高いスクリプトにしていきたいと思いますここですね このまま value にこの値を指定してしまうともしデータベースの中に 例えばこちらこのような値が格納された場合に実はこのスクリプトは正しく動かなくなりますずっと次のページに行きますと今ここにあえてですねこういったものを記述してみましたで「変更」ボタンをクリックしますとこのように「壊れました」というのが外に出てしまいましたこれは実はここの中の「”>」記号というのがタグを壊す役割になってしまっていてこのテキストフィールドは壊れてしまっている状態ですそこで このような事を防ぐためにこのようなファンクションが準備されています「 htmlspecialchars 」としてこちら囲って上げる事でこういったものも 正しく表示されるようにきちんと安全性を保ってくれますのでこれを採用していきましょうではテキストフィールドのその他の部分にも反映をしていきます「商品名(カナ)」には「 item_name_kana 」商品名の「価格」には「 price 」と入れますこれで改めて確認してみましょうではこちら「グレープフルーツ」を変更しますするとこのように「グレープフルーツ」「グレープフルーツ」たまたまこちらは名前と読み仮名が一緒ですけれども「価格」まで反映されています少し違うものを見てみましょうではこちら「柿」を見てみますと「柿」「カキ」値段が「250」で正しく反映されていますそしてこちら genre についてはこちら入力画面でやった時と同様ですけれどもここではこちらですね「 if 」という事で「 $row['genre_id'] 」が「 1 」であればという事で ここではこちらに「 selected 」が「 selected 」というかたちで属性を追加しますそして「 else 」として「 selected 」がないものを追加しておきましょうこれで動きを確認してみます例えば「くだもの」のものをクリックするとこのように「くだもの」が選ばれた状態になりますで今「野菜」はまだ反映されない状態なのでこの続きで「野菜」を反映するようにしていきましょう「 genre_id 」が「 2 」の場合はという事でこちら「 selected 」の「 selected 」と記述しますそして「 else 」の場合で「 endif 」という事ですねそして三つ目こちらが「 3 」番の場合という事ですねでこちらが「 selected="selected" 」と記述しますドロップダウンは少し手順が面倒くさいですが こちらで「かぶ」とクリックすると「野菜」になり「オレンジ」をクリックすると「くだもの」になるという事で値が反映できましたでは次のレッスンではここで作ったフォームで内容を変更したらその内容が反映されるというところを作り込んでいきたいと思います

PHP+MySQL入門

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

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

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

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

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