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

回答編集履歴

2

見直し

2021/04/22 09:10

投稿

退会済みユーザー
answer CHANGED
@@ -24,11 +24,11 @@
24
24
  ```php
25
25
  $phrases = [];
26
26
  $keywords = [];
27
- if (!isset($_POST['name'])) { // バリデーション甘々
27
+ if (isset($_POST['name'])) { // 値が入っていれば配列に追加する
28
28
  $phrases[] = 'name like ?';
29
29
  $keywords[] = '%' . $_POST['name'] . '%';
30
30
  }
31
- if (!isset($_POST['message'])) { // バリデーション甘々
31
+ if (isset($_POST['message'])) { // 値が入っていれば配列に追加する
32
32
  $phrases[] = 'message like ?';
33
33
  $keywords[] = '%' . $_POST['message'] . '%';
34
34
  }

1

見直し

2021/04/22 09:10

投稿

退会済みユーザー
answer CHANGED
@@ -19,9 +19,11 @@
19
19
 
20
20
  本題。
21
21
  nameとmessageを相手に、入力があるかないかわからないけど対応させたいわけですね。
22
+ where句以降を作るのに例えばこんなとか。
22
23
 
23
24
  ```php
24
25
  $phrases = [];
26
+ $keywords = [];
25
27
  if (!isset($_POST['name'])) { // バリデーション甘々
26
28
  $phrases[] = 'name like ?';
27
29
  $keywords[] = '%' . $_POST['name'] . '%';
@@ -30,10 +32,14 @@
30
32
  $phrases[] = 'message like ?';
31
33
  $keywords[] = '%' . $_POST['message'] . '%';
32
34
  }
35
+ var_dump($phrases); // 中身をチェックしてみてね
36
+ var_dump($keywords); // 中身をチェックしてみてね
33
37
  $where_phrase = implode(' and ', $phrases);
38
+ var_dump($where_phrase); // 中身をチェックしてみてね
34
39
  $sql2 .= 'where ' . $where_phrase;
35
40
  // (略)
36
41
  $stmt = $db->prepare($sql2);
37
42
  $stmt->execute($keywords); // バインドパラメータ使う
38
43
  ```
39
- みたいになる? 机上のコードなのでテストよろしく。
44
+ みたいになる? 机上のコードなのでテストよろしく。
45
+ var_dump()とかvar_export()で変数の中身を覗いてみるといいよ。