回答編集履歴
2
見直し
answer
CHANGED
@@ -24,11 +24,11 @@
|
|
24
24
|
```php
|
25
25
|
$phrases = [];
|
26
26
|
$keywords = [];
|
27
|
-
if (
|
27
|
+
if (isset($_POST['name'])) { // 値が入っていれば配列に追加する
|
28
28
|
$phrases[] = 'name like ?';
|
29
29
|
$keywords[] = '%' . $_POST['name'] . '%';
|
30
30
|
}
|
31
|
-
if (
|
31
|
+
if (isset($_POST['message'])) { // 値が入っていれば配列に追加する
|
32
32
|
$phrases[] = 'message like ?';
|
33
33
|
$keywords[] = '%' . $_POST['message'] . '%';
|
34
34
|
}
|
1
見直し
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()で変数の中身を覗いてみるといいよ。
|