ヘルニアクソ野郎エンジニアblog

~ヘルニアでHell near~

PHPとMySQLでECサイトをフルスクラッチ開発!⑨商品詳細、削除画面の作成

calendar

前回、商品修正画面の作成をしました。↓

 

今回は登録した商品の詳細画面と、削除をする画面の作成をします。

商品削除表

☆のマークは作成済みのファイルです。今回は雲マークのpro_disp.php pro_delete.php pro_delete.done.php ファイルを作成します。

今回で商品管理画面は終了です。

 

スポンサーリンク

商品情報詳細画面

pro_disp.php

htdocsフォルダのproductフォルダにpro_disp.phpを作成します。

このページでは、商品コードをもとに商品の詳細情報を表示させたいので、データベースに接続し、SQLでスタッフ情報のレコードを取り出す必要があります。ここまでに作成したページの応用なので、簡単です。

まず、pro_branch.phpからget送信されたスタッフコードを受けとるため、$_GETでcodeを受け取ります。

その後db接続し、SQLのSELECT文でスタッフコードを渡し、該当するスタッフ情報のレコードから表示させたいカラムを選択し、SQLの実行をします。

もうSQLは使わないのでここでdbを切断。

後は fetch で先ほど選択したレコードの情報を取り出して、printするだけです。

画像を表示させるif文は、前回説明したとおりgazouカラムが「空」であれば、そのままprintすればimgファイルが無い表示(小さい四角)が出るので、一度「””」で空白を代入します。

空でなければ、img srcで画像の格納場所を指定し、変数に代入します。

このif文があれば、その後にprint $disp_gazou で画像があれば画像が表示され、無ければ空白で表示されます。

商品詳細画面

 

商品削除確認画面

pro_delete.php

productフォルダ内にpro_delete.phpを作成します。

このページではpro_branch.phpからget送信されたスタッフコードを元に、データベースからスタッフ情報を取り出して表示させ、削除するか確認するページになります。

pro_branchから$_GETでスタッフコードを受け取り、db接続、SQLのSELECTでスタッフ情報を選択、fetchで選択したレコードの情報を取り出し、画像有無のif文で空白の処置を施してからprintで表示、と、先ほどのpro_disp.phpとほぼ同じです。

異なるのは、この後スタッフ情報を「削除」するので、次のページに値をpost送信するところですね。

スタッフコードさえあれば、削除するスタッフのレコードが分かりますので、codeをformのhiddenでpost送信します。画像については、gazouフォルダの画像ファイルを削除する必要があるため、こちらもhiddenでpostします。

商品情報を確認させて、削除実行する場合はOKをクリックして、pro_delete_done.phpに飛びます。

商品削除画面

 

商品削除実行画面

pro_delete_done.php

productフォルダ内にpro_delete_done.phpを作成します。

このページでは、選択した商品の削除を実行し、データベース上から削除する画面になります。また、画像が登録されていれば保存先のgazouフォルダから画像も消去させます。

postでデータを受け取り後、画像の有無のif文で「画像が存在する場合だけunlinkで消去」しています。

画像がなければ消去できないので、このif文が無ければエラーとなるはずです。(参照先のデータが無いため)

db接続後のSQLに「DELETE文」があります。これはスタッフ削除ページと同じく、

“DELETE (削除)FROM mst_staff(削除したいテーブル名) WHERE code=?(削除したいレコード)”;

となります。

したがって、商品コードを$data[]で渡してやれば、execute($data);の実行時に、指定したレコードが削除されます。

dbを閉じて、削除が完了したコメントを載せて、商品一覧へのリンクを貼っておきます。

商品削除実行

データベースとgazouフォルダを確認して、指定した商品と画像が削除されているか確認しましょう。

DB商品削除

今回で商品管理画面の作成は完了です。

次回からはいよいよ、メインである「ECサイト」の作成に入りたいと思います!