質問編集履歴

3

追記の部分が見づらかったので見えやすいように変更してみました。

2017/07/20 03:13

投稿

shimane
shimane

スコア98

test CHANGED
File without changes
test CHANGED
@@ -248,7 +248,13 @@
248
248
 
249
249
 
250
250
 
251
+ ---
252
+
253
+
254
+
251
- 【$tag1~$tag8までの利用した内容】
255
+ **【$tag1~$tag8までの利用した内容】**
256
+
257
+
252
258
 
253
259
  $tag1~$tag8(記事のタグが入っています。)
254
260
 

2

詳しい内容を書いてみました。

2017/07/20 03:13

投稿

shimane
shimane

スコア98

test CHANGED
File without changes
test CHANGED
@@ -245,3 +245,225 @@
245
245
  何か良いお知恵を知っている方がいましたら、教えて頂けると嬉しいです。
246
246
 
247
247
  どうかお願いします。
248
+
249
+
250
+
251
+ 【$tag1~$tag8までの利用した内容】
252
+
253
+ $tag1~$tag8(記事のタグが入っています。)
254
+
255
+
256
+
257
+ ```php
258
+
259
+
260
+
261
+ //配列に格納してmysqlに保存します。
262
+
263
+ //foreach内での処理
264
+
265
+ $Data[] = [
266
+
267
+ 'title' => $title, 'url' => $url, 'coment' => $coment,
268
+
269
+ 'tag1' => $tag1,
270
+
271
+ 'tag2' => $tag2,
272
+
273
+ 'tag3' => $tag3,
274
+
275
+ 'tag4' => $tag4,
276
+
277
+ 'tag5' => $tag5,
278
+
279
+ 'tag6' => $tag6,
280
+
281
+ 'tag7' => $tag7,
282
+
283
+ 'tag8' => $tag8,
284
+
285
+ 'tag9' => $tag9
286
+
287
+ ];
288
+
289
+
290
+
291
+ $sql = "insert into bbs (title, url, res,
292
+
293
+ tag1,tag2,tag3,tag4,tag5,tag6,tag7,tag8,tag9,
294
+
295
+ created) values (:title,:url,:res,
296
+
297
+ :inyoumoto,:tag1,:tag2,:tag3,:tag4,:tag5,:tag6,:tag7,
298
+
299
+ :tag8,:tag9,now())";
300
+
301
+ $stmt = $db->prepare($sql);
302
+
303
+ $stmt->execute([
304
+
305
+ ':title' => $title,
306
+
307
+ ':url' => $url,
308
+
309
+ ':res' => $coment,
310
+
311
+ ':tag1' => $tag1,
312
+
313
+ ':tag2' => $tag2,
314
+
315
+ ':tag3' => $tag3,
316
+
317
+ ':tag4' => $tag4,
318
+
319
+ ':tag5' => $tag5,
320
+
321
+ ':tag6' => $tag6,
322
+
323
+ ':tag7' => $tag7,
324
+
325
+ ':tag8' => $tag8,
326
+
327
+ ':tag9' => $tag9
328
+
329
+ ]);
330
+
331
+
332
+
333
+ ```
334
+
335
+
336
+
337
+ mysqlに保存した後にhtmlにて表示を行っています。
338
+
339
+
340
+
341
+ ```HTML
342
+
343
+
344
+
345
+ <div class="kijitag">
346
+
347
+ 配列の中身が空の時にエラーが起きる問題の解決の為に
348
+
349
+ 配列の中身が空の時には「タグ無し」という文字を変数の中に入れています。
350
+
351
+ if文で配列の中身が「タグ無し」以外の時にhtmlにて表示するように設定しています。
352
+
353
+ <?php if($mysql->tag1 !== "タグ無し") echo $mysql->tag1; ?>
354
+
355
+ <?php if($mysql->tag2 !== "タグ無し") echo $mysql->tag2; ?>
356
+
357
+ <?php if($mysql->tag3 !== "タグ無し") echo $mysql->tag3; ?>
358
+
359
+ <?php if($mysql->tag4 !== "タグ無し") echo $mysql->tag4; ?>
360
+
361
+ <?php if($mysql->tag5 !== "タグ無し") echo $mysql->tag5; ?>
362
+
363
+ <?php if($mysql->tag6 !== "タグ無し") echo $mysql->tag6; ?>
364
+
365
+ <?php if($mysql->tag7 !== "タグ無し") echo $mysql->tag7; ?>
366
+
367
+ <?php if($mysql->tag8 !== "タグ無し") echo $mysql->tag8; ?>
368
+
369
+ <?php if($mysql->tag9 !== "タグ無し") echo $mysql->tag9; ?>
370
+
371
+ </div>
372
+
373
+ ```
374
+
375
+
376
+
377
+ 自分で考えた配列が空だった場合の対処方法
378
+
379
+ ```PHP
380
+
381
+ if(!isset($result_array[0])){
382
+
383
+ $result_array[0] = "タグ無し";
384
+
385
+ }
386
+
387
+ if(!isset($result_array[1])){
388
+
389
+ $result_array[1] = "タグ無し";
390
+
391
+ }
392
+
393
+ if(!isset($result_array[2])){
394
+
395
+ $result_array[2] = "タグ無し";
396
+
397
+ }
398
+
399
+ if(!isset($result_array[3])){
400
+
401
+ $result_array[3] = "タグ無し";
402
+
403
+ }
404
+
405
+ if(!isset($result_array[4])){
406
+
407
+ $result_array[4] = "タグ無し";
408
+
409
+ }
410
+
411
+ if(!isset($result_array[5])){
412
+
413
+ $result_array[5] = "タグ無し";
414
+
415
+ }
416
+
417
+ if(!isset($result_array[6])){
418
+
419
+ $result_array[6] = "タグ無し";
420
+
421
+ }
422
+
423
+ if(!isset($result_array[7])){
424
+
425
+ $result_array[7] = "タグ無し";
426
+
427
+ }
428
+
429
+ if(!isset($result_array[8])){
430
+
431
+ $result_array[8] = "タグ無し";
432
+
433
+ }
434
+
435
+ $tag1 = $result_array[0];
436
+
437
+ $tag2 = $result_array[1];
438
+
439
+ $tag3 = $result_array[2];
440
+
441
+ $tag4 = $result_array[3];
442
+
443
+ $tag5 = $result_array[4];
444
+
445
+ $tag6 = $result_array[5];
446
+
447
+ $tag7 = $result_array[6];
448
+
449
+ $tag8 = $result_array[7];
450
+
451
+ $tag9 = $result_array[8];
452
+
453
+ ```
454
+
455
+
456
+
457
+ これでエラーが表示される事なく記事タグをmysqlで保存できて
458
+
459
+ html上でも表示する事が出来たのですが
460
+
461
+ 私のような初心者から見ても
462
+
463
+ 無駄な書き方が多かったり、処理も無駄に多くなっていそうな気がします。
464
+
465
+ (ただ、今の私の実力ではこの書き方以外の方法がまったく思いつきませんでした。)
466
+
467
+
468
+
469
+ もっと良い書き方がありましたら教えて頂けると嬉しいです。

1

抜けていた部分を記載しました。

2017/07/20 03:11

投稿

shimane
shimane

スコア98

test CHANGED
File without changes
test CHANGED
@@ -232,6 +232,14 @@
232
232
 
233
233
 
234
234
 
235
+ 勉強中の私でも上のコードは無駄が多すぎるように感じてしまいます。
236
+
237
+ (処理速度的にも無駄に重くなってしまいそうです。)
238
+
239
+ 何かもっとすっきりと効率よく処理が出来るようなコードの書き方がありましたら教えて頂けると嬉しいです。
240
+
241
+
242
+
235
243
  実際にYahooAPIを利用されていたり、記事タグの自動作成を経験されていた方や
236
244
 
237
245
  何か良いお知恵を知っている方がいましたら、教えて頂けると嬉しいです。