PHP データベースを利用したWebアプリケーションの開発【第四回】データの更新 update

前回、登録した情報一覧ページを作成しました。

今回は、一覧ページに設置した「詳細・更新」からedit.phpに遷移し会員情報の内容を更新するためのプログラムを開発します。

この記事の著者 ->S.E; です。

普段は、システム開発に必要なヒアリング、システムの要件定義、設計からプログラマとしてWebサイトやWebアプリケーションの開発、WordPressでのブログの執筆やサーバー運用・管理を行っています。

このページは「未経験の為のプログラミング講座 ゼロから始めるPHPプログラミング〜初級から実践編までを網羅〜」としてPHPの基本的な部分を【初級編】【中級編】【上級編】に分けて解説しています。最終的には簡単なフォームやシステム開発をフルスクラッチで行うことを目的としています。また、参考になる書籍なども紹介しています。

会員情報登録ページ「edit.php」を編集する

以前、会員情報登録のために作成した「edit.php」を利用し、更新の機能を実装します。
更新用のページを別途作成する方法もありますが、内容がほぼ同じなのでメンテナンス性も考慮し同じページを使い回したいと思います。

前回作成した「edit.php」のソース

一覧からIDを受け取り更新機能の処理を追加する

では、以前の「edit.php」に更新機能を追加します。
まず、一覧からIDを受け取り、そのIDから情報を取得するスクリプトを追加します。

$_GET[‘id’] でIDが送信されるので、受け取ったIDを セッター setTestID() にセットします。
IDをセットしたら getData() で、情報を取得し $memberData に格納します。

後は、各フォームに取得した情報を配置するためにセッターを利用しセットして完了です。

class.Member.phpに新しいメソッド、プロパティを追加

上記で利用した、setTestID() はまだ作成していないので「class.Member.php」に追記します。
また、IDをセットしgetData()で指定のIDの情報を取得する部分も追記します。

注意点としては setTestID() でIDをセットした場合、SELECT文に if( getTestID() ){〜}を記述し全件取得か1件取得かを条件分岐させるところです。

また、電話番号のセッター setTestTelはハイフンなしの番号3種を引数として渡すので、SELECT文で取得した電話番号をexplode()を利用し、あらかじめ分割しておきます。

explode()とは

explode関数は、指定の文字列で、元の文字列を分割するための関数です。
今回の場合は「000-1111-2222」の文字列を「」で分割します。
$_data = explode( ‘-‘, ‘000-1111-2222’ ) の場合は分割された文字列が配列で返されます。

$_data[0] = 000、$_data[1] = 1111、$_data[2] = 2222 となります。

更新用のメソッドを追記

では更新用のメソッドを「class.Member.php」に追記します。
UPDATE文を利用し、更新するためのIDをWHERE句で指定すれば完了です。

更新のためのプログラムを埋め込む

更新用のメソッドが完成したので、「edit.php」に埋め込みます。

注意点としては、更新時も入力エラーの確認を行いかつ、IDがある場合は更新(updateDB)、IDがない場合は新規登録(insertDB)を実行する条件分岐です。

データの更新を開発してみて

データの登録とほぼ同様の処理を行い、UPDATEとWHERE句で指定の情報を上書きする処理なので、登録用のページを流用することをお勧めします。

登録と更新で多少の違いがある場合などは条件分岐などを記述し振り分ければほぼほぼ同じソースを使いまわせるので修正時が非常に楽になります。

また、今回は更新完了後、メッセージを出して終了(exit)しますが、一覧に戻るように記述することもできます。

created by Rinker
PHP7の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得! PHPプログラミングの標準教科書『独習PHP』が、最新のPHP7に対応。PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、PHPの基本構文から、クラス、データベース連携、セキュリティまで、詳細かつ丁寧に解説します。
created by Rinker
時間がなくたって、プログラミングは学べます。学習を躊躇していた人たちに、既存の入門書で挫折した人たちに、「これならできる!」の最短カリキュラムを、土日の14時間で提供。まったくのプログラミング初心者が簡単なWebデータベースアプリを構築できるまでの成長コースを、手取り足取り、導きます。

コメントする

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)