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

回答編集履歴

2

修正

2016/12/08 23:42

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -32,7 +32,7 @@
32
32
  if(isset($_POST[$v])){
33
33
  $where .= ($where == "")? " WHERE": " AND";
34
34
  $where .= " $v=?";
35
- $data[] = $_POST['A'];
35
+ $data[] = $_POST[$v];
36
36
  }
37
37
  }
38
38
  $sql = $sql . $where;

1

個人的修正

2016/12/08 23:42

投稿

ttyp03
ttyp03

スコア17002

answer CHANGED
@@ -19,5 +19,21 @@
19
19
  $stmt=$pdo->prepare($sql);
20
20
  $stmt->execute($data);
21
21
  $stmt->fetch(PDO::FETCH_ASSOC);
22
+ ```
22
23
 
24
+ もう解決されてますが、個人的にリファクタリングしました。
25
+ 多少スッキリ。
26
+ ```PHP
27
+ $abc= [ 'A', 'B', 'C' ];
28
+ $data = Array();
29
+ $sql="SELECT * FROM data";
30
+ $where = "";
31
+ foreach($abc as $v){
32
+ if(isset($_POST[$v])){
33
+ $where .= ($where == "")? " WHERE": " AND";
34
+ $where .= " $v=?";
35
+ $data[] = $_POST['A'];
36
+ }
37
+ }
38
+ $sql = $sql . $where;
23
39
  ```