画像関連

【PHP・MySQL】データベースに画像を保存・表示する方法 第5回「画像を削除する」

Sara

 
ここまでの記事はこちら

今回は最後の総仕上げです。データベースに登録した画像を削除できるようにしていきましょう。

解説

削除リンクの変更

list.php の削除リンクを 9 ~ 11 行目のように変更します。

9行目

<a href="javascript:void(0);"

ここでは、「削除」をクリックした時に何も起こらないように a タグのリンクを無効にしています。

10行目

「削除しますか?」という確認アラートを出して、「OK」が押されたら delete.php に移動するという処理を書いています。

少し複雑そうに見えますが、以下の 4 行を 1 行にまとめているだけです。

var ok = confirm('削除しますか?');
if (ok) {
 location.href='delete.php?id=<?= $images[$i]['image_id']; ?>';
}

「キャンセル」が押された場合は何も処理を実行しません。

画像を削除する

次に画像削除の処理を書く delete.php ファイルを作成します。

delete.php という名前でファイルを作成して、以下のようにコードを書きます。

image.php と同じように image_id を受け取って、その image_id をもとにデータを削除します。

削除したら list.php に遷移して完了です。

まとめ

以上で完成です!

画像を扱うウェブアプリを開発するときは、今回のように画像をデータベースに保存するか、画像ファイルをフォルダにアップロードして使うか迷うところです。

プロジェクトによりますが、私が開発するときは

  • 画像が mediumblob 型で保存できるサイズである
  • ユーザーのプロフィール画像・アイコンなど、特定のユーザーとリンクしている画像である
  • 画像投稿が複数のユーザーから同時に行われる可能性が高い

場合は、データベースに直接保存する方法をとるようにしています。

どちらが良い・悪いというものではないので、ご自身のプロジェクトに合わせてお選びください。

サンプルコード

ここまでのサンプルコードは「ダウンロード」ボタンから一括ダウンロードできます。 

Subscribe
Notify of
guest
6 Comments
古い順
新しい順 人気順
Inline Feedbacks
View all comments
あいう
あいう
3 years ago

サンプルコードをそのまま使用したのですが、どうしても画像がばってんになってしまい表示されません。どうすればよろしいですか。

せいや
せいや
2 years ago

コメント失礼します。
サンプルコードを参考に画像投稿機能を作成することができました。
削除機能のところで、削除キーを付与して、投稿者のみが削除できるようにすることは可能でしょうか。
もし可能であれば、方法を教えていただきたいです。
よろしくお願いいたします。

せいや
せいや
2 years ago
Reply to  Sara

この度は急な質問にも早急にご回答いただき、
誠にありがとうございます。

お陰様で、なんとか実装できそうです!

丁寧に説明していただきとても助かりました。
これからも参考にさせていただきます。

ABOUT ME
Sara
Sara
運営者
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
>> 詳しいプロフィールはこちら
>> 書籍を出版しました!
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

6
0
この記事にコメントするx
記事URLをコピーしました