質問編集履歴
2
追記しました。imgタグを使った文章に書きかえました。データ格納時のコードを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,10 +26,6 @@
|
|
26
26
|
|
27
27
|
Picture1,2,3に関してはデータベースに直接写真を格納したいです。
|
28
28
|
|
29
|
-
テスト用ファイルをアップロードしてみましたが写真が正しく格納できているのかは確認の仕方がわからないので出来ていません。
|
30
|
-
|
31
|
-
|
32
|
-
|
33
29
|
|
34
30
|
|
35
31
|
### 該当のソースコード
|
@@ -42,11 +38,11 @@
|
|
42
38
|
|
43
39
|
try{
|
44
40
|
|
45
|
-
$dsn = '
|
41
|
+
$dsn = '';
|
46
|
-
|
42
|
+
|
47
|
-
$user = '
|
43
|
+
$user = '';
|
48
|
-
|
44
|
+
|
49
|
-
$password = '
|
45
|
+
$password = '';
|
50
46
|
|
51
47
|
|
52
48
|
|
@@ -186,21 +182,243 @@
|
|
186
182
|
|
187
183
|
|
188
184
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
$
|
202
|
-
|
203
|
-
$
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
###追記
|
190
|
+
|
191
|
+
```php
|
192
|
+
|
193
|
+
<?php
|
194
|
+
|
195
|
+
try{
|
196
|
+
|
197
|
+
$dsn = 'mysql:dbname=???;host=???;charset=utf8';
|
198
|
+
|
199
|
+
$user = '???';
|
200
|
+
|
201
|
+
$password = '???';
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
$PDO = new PDO($dsn, $user, $password); //MySQLのデータベースに接続
|
206
|
+
|
207
|
+
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //PDOのエラーレポートを表示
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
//2.実行したいSQL文をセットする。
|
216
|
+
|
217
|
+
$car1=$PDO->query('SELECT * from user order by kanrino desc limit 1');
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
|
222
|
+
|
223
|
+
$cardb1=$car1->fetchAll(PDO::FETCH_ASSOC);
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
$img1 = base64_encode($cardb1['picture1']);
|
228
|
+
|
229
|
+
$img2 = base64_encode($cardb1['picture2']);
|
230
|
+
|
231
|
+
$img3 = base64_encode($cardb1['picture3']);
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
$pdo=null;
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
}catch (PDOException $e) {
|
244
|
+
|
245
|
+
exit('データベースに接続できませんでした。' . $e->getMessage());
|
246
|
+
|
247
|
+
}
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
?>
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
<body>
|
262
|
+
|
263
|
+
<table border="1">
|
264
|
+
|
265
|
+
<!-- 1 -->
|
266
|
+
|
267
|
+
<?php
|
268
|
+
|
269
|
+
if(isset($cardb1)){
|
270
|
+
|
271
|
+
foreach($cardb1 as $card1){
|
272
|
+
|
273
|
+
echo'<tr>';
|
274
|
+
|
275
|
+
echo '<th colspan="5">',$card1['title'],'</th>';
|
276
|
+
|
277
|
+
echo'</tr>';
|
278
|
+
|
279
|
+
}
|
280
|
+
|
281
|
+
}
|
282
|
+
|
283
|
+
?>
|
284
|
+
|
285
|
+
<!-- 2 -->
|
286
|
+
|
287
|
+
<?php
|
288
|
+
|
289
|
+
if(isset($cardb1)){
|
290
|
+
|
291
|
+
foreach($cardb1 as $card1){
|
292
|
+
|
293
|
+
echo'<tr>';?>
|
294
|
+
|
295
|
+
<th colspan="2" rowspan="2"><img src="data:;base64,<?php echo $img1; ?>"></th>
|
296
|
+
|
297
|
+
<?php
|
298
|
+
|
299
|
+
echo'<th colspan="2" rowspan="2">',$img2,'</th>';
|
300
|
+
|
301
|
+
echo'<td>',$card1['no'],'</td>';
|
302
|
+
|
303
|
+
echo'</tr>';
|
304
|
+
|
305
|
+
}
|
306
|
+
|
307
|
+
}
|
308
|
+
|
309
|
+
?>
|
310
|
+
|
311
|
+
<!-- 3 -->
|
312
|
+
|
313
|
+
<?php
|
314
|
+
|
315
|
+
if(isset($cardb1)){
|
316
|
+
|
317
|
+
foreach($cardb1 as $card1){
|
318
|
+
|
319
|
+
echo'<tr>';
|
320
|
+
|
321
|
+
echo '<td>',$card1['kanrino'],'</td>';
|
322
|
+
|
323
|
+
echo'</tr>';
|
324
|
+
|
325
|
+
}
|
326
|
+
|
327
|
+
}
|
328
|
+
|
329
|
+
?>
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
<?php
|
334
|
+
|
335
|
+
if(isset($cardb1)){
|
336
|
+
|
337
|
+
foreach($cardb1 as $card1){
|
338
|
+
|
339
|
+
echo'<tr>';
|
340
|
+
|
341
|
+
echo'<th colspan="2" rowspan="2">',$img3,'</th>';
|
342
|
+
|
343
|
+
echo'<td colspan="3" rowspan="2">',$card1['Description'],'</td>';
|
344
|
+
|
345
|
+
echo'</tr>';
|
346
|
+
|
347
|
+
}
|
348
|
+
|
349
|
+
}
|
350
|
+
|
351
|
+
?>
|
352
|
+
|
353
|
+
```
|
354
|
+
|
355
|
+
img1を修正し表示できるようにしてみることを目標にやってみましたができませんでした。
|
356
|
+
|
357
|
+
imgタグの文法はimg1のところのように書いていけば大丈夫でしょうか?
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
|
362
|
+
|
363
|
+
画像の格納方法のコードはこうなっています。
|
364
|
+
|
365
|
+
```html
|
366
|
+
|
367
|
+
<form action="sell.php" method="POST" enctype="multipart/form-data">
|
368
|
+
|
369
|
+
<p>車の番号(半角数字)</p>
|
370
|
+
|
371
|
+
<div><input pattern="^[0-9]+$"name="no" required></div>
|
372
|
+
|
373
|
+
<p>タイトル(25字まで)</p>
|
374
|
+
|
375
|
+
<div><textarea id="taitoru" name="taitoru" maxlength="25" placeholder="タイトルを入力"></textarea></div>
|
376
|
+
|
377
|
+
<p>車の説明(2500字まで)</p>
|
378
|
+
|
379
|
+
<div><textarea id="setumei" name="setumei" maxlength="2500" placeholder="車の説明を入力"></textarea></div>
|
380
|
+
|
381
|
+
<p>画像1(jpgもしくはjpeg)</p>
|
382
|
+
|
383
|
+
<div><input type="file" name="avatar1" accept=".jpg, .jpeg" required></div>
|
384
|
+
|
385
|
+
<P>画像2(jpgもしくはjpeg)</P>
|
386
|
+
|
387
|
+
<div><input type="file" name="avatar2" accept=".jpg, .jpeg" required></div>
|
388
|
+
|
389
|
+
<p>画像3(jpgもしくはjpeg)</p>
|
390
|
+
|
391
|
+
<div><input type="file" name="avatar3" accept=".jpg, .jpeg" required></div>
|
392
|
+
|
393
|
+
<p>掲載id</p>
|
394
|
+
|
395
|
+
<div><input pattern="^[0-9]+$"name="keisaiid" maxlength='6' minlength="6" placeholder="半角数字6桁" required></div>
|
396
|
+
|
397
|
+
<p>パスワード</p>
|
398
|
+
|
399
|
+
<div><input pattern="^['0-9''a-z''A-Z']+$" name="keisaipass" maxlength="8" minlength="8" placeholder="英数8桁(半角 英語は大文字可)" required></div>
|
400
|
+
|
401
|
+
<div><button type="submit">掲載する</button></div>
|
402
|
+
|
403
|
+
</form>
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
```
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
```php
|
412
|
+
|
413
|
+
<?php
|
414
|
+
|
415
|
+
try { $dsn = 'mysql:dbname=???;host=???;charset=utf8';
|
416
|
+
|
417
|
+
$user = '???';
|
418
|
+
|
419
|
+
$password = '???';
|
420
|
+
|
421
|
+
|
204
422
|
|
205
423
|
|
206
424
|
|
@@ -208,52 +426,80 @@
|
|
208
426
|
|
209
427
|
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //PDOのエラーレポートを表示
|
210
428
|
|
429
|
+
|
430
|
+
|
431
|
+
|
432
|
+
|
211
|
-
|
433
|
+
$nowdeta = $PDO->query('SELECT (kanrino) from user order by kanrino desc limit 1');
|
434
|
+
|
212
|
-
|
435
|
+
// 4.実際にSQLを実行する。
|
436
|
+
|
213
|
-
|
437
|
+
$nowdeta->execute();
|
438
|
+
|
214
|
-
|
439
|
+
// 5.結果を取得する。【任意】
|
440
|
+
|
441
|
+
$beta = $nowdeta->fetch();
|
442
|
+
|
443
|
+
// newdetaの定義
|
444
|
+
|
445
|
+
$newdeta=$beta['kanrino']+1;
|
446
|
+
|
447
|
+
|
448
|
+
|
215
|
-
//2.実行したいSQL文をセットする。
|
449
|
+
// 2.実行したいSQL文をセットする。2
|
216
|
-
|
450
|
+
|
217
|
-
$car
|
451
|
+
$car = $PDO->prepare('INSERT INTO user VALUES(:title,:Descript,:carno,:picture1,:picture2,:picture3,:id,:pass,:kanrino)' );
|
452
|
+
|
453
|
+
|
454
|
+
|
455
|
+
|
456
|
+
|
218
|
-
|
457
|
+
//変数の定義
|
458
|
+
|
219
|
-
|
459
|
+
$img_data1 = file_get_contents(@$_FILES['avatar1']['tmp_name']);
|
460
|
+
|
220
|
-
|
461
|
+
$img_data2 = file_get_contents(@$_FILES['avatar2']['tmp_name']);
|
462
|
+
|
221
|
-
|
463
|
+
$img_data3 = file_get_contents(@$_FILES['avatar3']['tmp_name']);
|
464
|
+
|
465
|
+
|
466
|
+
|
222
|
-
|
467
|
+
// 3.SQLに対してパラメーターをセットする。(画像の部分以外はカット)
|
468
|
+
|
223
|
-
$card
|
469
|
+
$car->bindValue(':picture1',$img_data1, PDO::PARAM_LOB);
|
470
|
+
|
224
|
-
|
471
|
+
$car->bindValue(':picture2',$img_data2, PDO::PARAM_LOB);
|
472
|
+
|
225
|
-
|
473
|
+
$car->bindValue(':picture3',$img_data3, PDO::PARAM_LOB);
|
474
|
+
|
475
|
+
|
476
|
+
|
226
|
-
|
477
|
+
// 4.実際にSQLを実行
|
478
|
+
|
227
|
-
|
479
|
+
$car->execute();
|
228
|
-
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
|
486
|
+
|
229
|
-
}catch (PDOException $e) {
|
487
|
+
} catch (PDOException $e) {
|
230
488
|
|
231
489
|
exit('データベースに接続できませんでした。' . $e->getMessage());
|
232
490
|
|
233
491
|
}
|
234
492
|
|
493
|
+
// 6.データーベースから切断する。
|
494
|
+
|
235
|
-
|
495
|
+
unset($PDO);
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
496
|
+
|
241
|
-
?>
|
497
|
+
?>
|
498
|
+
|
499
|
+
|
242
500
|
|
243
501
|
```
|
244
502
|
|
245
|
-
###その結果と取得したデータベースの内容
|
246
|
-
|
247
|
-
|
503
|
+
画像の格納の部分に関してはバグがあるのかもわからないです。(エラーメッセージは出てません。)
|
248
|
-
|
249
|
-
|
504
|
+
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
505
|
+
自分では正しくできていると思っていました。
|
254
|
-
|
255
|
-
この表を1ページあたり10個ずつ表示していき、次のページにも...のような機能を付けたいのですがどのようなコードを書いたらいいかの検討もつかないので教えていただきたいです。
|
256
|
-
|
257
|
-
![EX](b58a58daee35e47345c4cce2526404f1.png)
|
258
|
-
|
259
|
-
ショッピングサイトなどで見るこういうのを作りたいです。
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
PHPのPO
|
5
|
+
PHPのPDOを使ってMySQLからデータを取得しhtmlで表にして表示したい。(数字とテキストと画像)
|
6
6
|
|
7
7
|
|
8
8
|
|