質問するログイン新規登録

質問編集履歴

2

15時時点

2018/10/27 06:26

投稿

kirin311
kirin311

スコア53

title CHANGED
File without changes
body CHANGED
@@ -160,4 +160,79 @@
160
160
 
161
161
  ?>
162
162
 
163
+ ```
164
+
165
+
166
+ ###2018/10/27 15時時点の内容
167
+ index.phpの// MySQL以下を削除し
168
+ upload.phpにて修正。(先ほどまで、whileの中に$i++;を入れるという発想が思いつかなかった)
169
+
170
+ ```ここに言語を入力
171
+
172
+ <?php
173
+
174
+ //upload.php
175
+ //ファイルアップロード処理
176
+
177
+   //バイナリデータ
178
+ $fp = fopen($_FILES["file"]["tmp_name"], "rb");
179
+ $imgdat = fread($fp, filesize($_FILES["file"]["tmp_name"]));
180
+ fclose($fp);
181
+ $imgdat = addslashes($imgdat);
182
+
183
+ // ファイル名
184
+ $file_name = $_FILES["file"]["name"];
185
+
186
+ // 拡張子
187
+ $dat = pathinfo($_FILES["file"]["name"]);
188
+ $extension = $dat['extension'];
189
+
190
+ // // 日付
191
+ $reg_date = date("Y-m-d H:i:s");
192
+ // $upp_date = date("Y-m-d H:i:s");
193
+
194
+
195
+ // MIMEタイプ
196
+ if ( $extension == "jpg" || $extension == "jpeg" ) $mime = "jpeg";
197
+ else if( $extension == "gif" ) $mime = "gif";
198
+ else if ( $extension == "png" ) $mime = "png";
199
+
200
+
201
+ try {
202
+ // データベースに接続
203
+ $pdo = new PDO(
204
+ 'mysql:dbname=c9;host=localhost;charset=utf8mb4',
205
+ 'user',
206
+ 'password',
207
+ [
208
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
209
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
210
+ ]
211
+ );
212
+
213
+ $sql = "INSERT INTO `c9`.`Items` VALUES (NULL, '".$file_name."', '".$imgdat."', '".$mime."', '".$reg_date."', '".$reg_date."', '0')";
214
+ $res = $pdo->query($sql);
215
+
216
+ $stmt = $pdo->query("SELECT * FROM Items order by regdate desc");
217
+
218
+ $obj = array();
219
+ $i=0;
220
+ while($row = $stmt -> fetch(PDO::FETCH_ASSOC)) {
221
+ // $obj[] = $row;
222
+ $obj[$i][] = $row['id'];
223
+ $obj[$i][] = $row['name'];
224
+ $obj[$i][] = '<img src="data:images/'.$row['mimetype'].';base64,'.base64_encode($row['binary']).'" width="30%" height="30%">';
225
+
226
+ $i++;
227
+ }
228
+
229
+ header('Content-type: application/json');
230
+ return print json_encode($obj,JSON_UNESCAPED_UNICODE);
231
+ } catch (PDOException $e) {
232
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
233
+ exit($e->getMessage());
234
+
235
+ }
236
+
237
+ ?>
163
238
  ```

1

インデント修正。

2018/10/27 06:26

投稿

kirin311
kirin311

スコア53

title CHANGED
@@ -1,1 +1,1 @@
1
- 画像ドロップしたらMYSQLのSELECT内容更新
1
+ 画像ドロップしたらMYSQLのINSERT実行後、SELECT内容更新
body CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  uplod.phpでinsertに成功したら$upload_flag=1を与えてajaxのsuccessでdataから取ると考えていたのですけど、Javascriptの変数からPHPの変数にするというのは調べたところ、やはり出来ないとのことで・・・。
19
19
 
20
- 以上です。
20
+
21
21
  まとめると、「AjaxでInsertかつページを更新の方法手順」となります。
22
22
  処理手順だけでもアドバイスを頂ければと思います。
23
23
 
@@ -82,7 +82,7 @@
82
82
 
83
83
  // MySQL
84
84
  try {
85
- $pdo = new PDO('mysql:host=127.0.0.1;dbname=table;charset=utf8','user','password',
85
+ $pdo = new PDO('mysql:host=127.0.0.1;dbname=c9;charset=utf8','user','password',
86
86
  array(PDO::ATTR_EMULATE_PREPARES => false));
87
87
  } catch (PDOException $e) {
88
88
  exit('データベース接続失敗。'.$e->getMessage());
@@ -103,9 +103,9 @@
103
103
  <?php
104
104
 
105
105
  //upload.php
106
- // ファイルアップロード処理
106
+ //ファイルアップロード処理
107
107
 
108
- // バイナリデータ
108
+   //バイナリデータ
109
109
  $fp = fopen($_FILES["file"]["tmp_name"], "rb");
110
110
  $imgdat = fread($fp, filesize($_FILES["file"]["tmp_name"]));
111
111
  fclose($fp);
@@ -130,8 +130,6 @@
130
130
 
131
131
 
132
132
  try {
133
-
134
-
135
133
  // データベースに接続
136
134
  $pdo = new PDO(
137
135
  'mysql:dbname=c9;host=localhost;charset=utf8mb4',
@@ -142,7 +140,6 @@
142
140
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
143
141
  ]
144
142
  );
145
-
146
143
 
147
144
  $sql = "INSERT INTO `c9`.`Items` VALUES (NULL, '".$file_name."', '".$imgdat."', '".$mime."', '".$reg_date."', '".$reg_date."', '0')";
148
145
  $res = $pdo->query($sql);
@@ -159,8 +156,6 @@
159
156
 
160
157
  }
161
158
 
162
-
163
-
164
159
  return print $upload_flag;
165
160
 
166
161
  ?>