質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4504閲覧

データベースでの画像更新について

ssk

総合スコア332

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2015/08/12 12:42

編集2015/08/12 12:43

・PHPを使ってMySQLに画像ファイル名を登録
・選択された画像を指定のフォルダに反映

ここまではできたのですが、画像を更新する際にその都度、同じ画像を選択しなければデータが消えてしまいます。「気づけばプロ並みPHP」を参考にしているのですが、ここの説明はなく、困っています。

どのようにすれば、画像更新の度に選択しなくて済むのでしょうか?

お力添えをお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

・PHPを使ってMySQLに画像ファイル名を登録

ここのロジックどうなっていますか?
画像が設定されていない場合でも画像ファイル名を更新するようなロジックになっていませんでしょうか?

下記のソースで、画像ファイルが存在すればというような条件分岐を作成できます。
あればDBを更新、無ければ更新しないというロジックにすることで解決できませんでしょうか?

php

1if(isset($_FILES['フィールド名']) && $_FILES['フィールド名']['error'] == UPLOAD_ERR_OK)){ 2}

投稿2015/08/12 12:49

編集2015/08/12 12:50
shunshun

総合スコア89

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssk

2015/08/12 12:59

・PHPを使ってMySQLに画像ファイル名を登録 ここのロジックどうなっていますか? →画像が設定されていない場合(空でも空の情報で)更新するようになっています。 【register.php】画像ファイルを選択してもらい <input type="file" name="profile_image"> 【register_check.php】画像の情報を受け取り $profile_image=$_FILES['profile_image']; <input type="hidden" name="profile_image" value="'.$profile_image['name'].'"> 【register_finish.php】最後にデータベースに登録するようになっています。 $profile_image=$_POST['profile_image']; $sql='UPDATE user SET profile_image=? WHERE code=?'; $stmt=$dbh->prepare($sql); $data[]=$profile_image; $data[]=$code;
guest

0

if(isset($_FILES['フィールド名']) && $_FILES['フィールド名']['error'] == UPLOAD_ERR_OK)){
}
↑こちらのロジックを活用して、解決することができました。ありがとうございます。

【user_edit.php】
<input type="file" name="profile_image" value="<?php echo $profile_image; ?>">

【register_check.php】
$sql='SELECT profile_image FROM user WHERE code=?';
↑データベースからファイル名をとり

新しいファイルがある場合は新しいファイルを、ない場合はデータベースの値を。
if($profile_image['name']==true){
print '<input type="hidden" name="profile_image" value="'.$time.$profile_image['name'].'" >';
}else{
print '<input type="hidden" name="profile_image" value="'.$db_profile_image.'">';
}

正解かどうかわからないのですが、思っていたことができそうでよかったです。
もし、こっちの方が良いなどありましたら、また教えていただけれると助かります。

投稿2015/08/12 14:19

ssk

総合スコア332

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問