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

質問編集履歴

3

誤字

2017/09/13 08:47

投稿

gsuisk
gsuisk

スコア72

title CHANGED
File without changes
body CHANGED
@@ -64,4 +64,4 @@
64
64
 
65
65
  のように、subject1とsubject2をORではできないのでしょうか?(試しましたが動作しませんでした。)
66
66
 
67
- "{$subject}%"とすれば格納されている文字列に余計なものが入力されていても抽出されると思ったのですが、、
67
+ "{$subject}%"とすれば格納されている文字列に余計なものが続いて入力されていても抽出されると思ったのですが、、

2

追記

2017/09/13 08:47

投稿

gsuisk
gsuisk

スコア72

title CHANGED
File without changes
body CHANGED
@@ -54,4 +54,14 @@
54
54
 
55
55
  複雑で面倒な質問で本当にすみません。もしわかる方がいれば知恵を拝借させてください。
56
56
 
57
- よろしくお願いします。
57
+ よろしくお願いします。
58
+
59
+
60
+ 以下追記です。________________________________________________________________________
61
+
62
+ $stm->bindValue(':subject1', "%{$subject}%", PDO::PARAM_STR);
63
+ $stm->bindValue(':subject2', "{$subject}%", PDO::PARAM_STR);
64
+
65
+ のように、subject1とsubject2をORではできないのでしょうか?(試しましたが動作しませんでした。)
66
+
67
+ "{$subject}%"とすれば格納されている文字列に余計なものが入力されていても抽出されると思ったのですが、、

1

自己改善した

2017/09/13 08:46

投稿

gsuisk
gsuisk

スコア72

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,5 @@
1
+ 質問を訂正しました。
2
+
1
3
  PHPとMySQLを使って以下のような機能を実装したいです。
2
4
 
3
5
  難易度、科目名、講師名の3つのカラムを持つテーブルがあり、いくつかのレコードが格納されています。
@@ -9,30 +11,21 @@
9
11
  「科目名」と「講師名」は<input type="text">で設定します。
10
12
 
11
13
 
12
- 条件として
14
+ 検索の条件は
13
15
 
14
16
  ```
15
- 1. 検索者は「難易度」の選択のみが必須で、「科目名」と「講師名」の入力は任意。
17
+ 検索者は「難易度」の選択のみが必須で、「科目名」と「講師名」の入力は任意。
16
18
 
17
- 2. 必須の「難易度」のみの設定で検索した場合は、選択された難易度のレコードをすべて抽出。
19
+ ```
18
20
 
19
- 3.「科目名」「講師名」も入力された場合、両方に一致するレコードを抽出。
21
+ できなくて困っていることは
20
-
21
-
22
22
  ```
23
+ 例えば「数学」として格納されているデータを抽出するのに、
24
+ 「数」では引っかかってくれるのですが、「数学者」では引っかからないことです。
23
25
  ```
24
- 例えば、「難易度:易 科目名:数学 講師名:山田太郎」このレコードに対して
25
26
 
26
- 難易度「易」選択で「科目名」が未入力で、「講師名」に「山田太郎」と入力すれば、
27
- 「易」かつ「山田太郎」のレコードを抽出するので、これは引っかかる。
28
27
 
29
- 文字列は完全一致でなくても抽出する。
30
- この場合、講師名は「山田」や「山田太郎丸」等も引っかかるようにしたいです。
31
- (できれば3文字以上の一致があれば抽出等にしたいです。)
32
- ```
33
28
 
34
-
35
-
36
29
  ポストされたデータは、難易度が$difficulty、科目名が$subject、講師名が$teacherに代入してあります。。テーブル名はtableです。
37
30
 
38
31
  汚いコードですが書いてみたものです。
@@ -54,11 +47,10 @@
54
47
  //上と同じ処理
55
48
  }
56
49
  ```
57
- まず選択必須の難易度$difficultyは条件分岐しなくてもできるでしょうか?
58
50
 
59
- またこれだとレコードある「難易度科目名、講師名」を入力して検索しても、選択した難易度レコドがすべて抽出されてまいます。
51
+ WHEREをどのようすれば、入力文字が実際タの文字列を超えいても抽出できるのでょうか?
52
+ また選択必須の難易度$difficultyは条件分岐しなくてもできるでしょうか?
60
53
 
61
- 検索ワードの欄が複数ある時のWHEREはどのように書くのでしょうか?
62
54
 
63
55
  複雑で面倒な質問で本当にすみません。もしわかる方がいれば知恵を拝借させてください。
64
56