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

質問編集履歴

4

試した方法とタイトルについて追加

2017/10/17 13:02

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- 検索結果ページで、nullの場合数表示されな
1
+ 検索結果ページnullの場合の条分岐につ
body CHANGED
@@ -1,184 +1,54 @@
1
1
  勤務地等何かを選択すると、
2
- 検索結果が表示されるのですが、
2
+ 検索結果が表示されるのですが、全件表示がうまくいきません。
3
- 全件表示がうまくいきません。
4
3
 
5
- 問題:何も選択せずに検索ボタンを押すと、
4
+ **問題:**何も選択せずに検索ボタンを押すと、
6
5
  0件と表示される。
7
6
 
8
- サンプルデータ:
7
+ **試した方法**
8
+ ●$_POSTが空の場合とそうじゃない場合のif文
9
- [https://test170701-mh0926.c9users.io/jobsearch/](https://test170701-mh0926.c9users.io/jobsearch/)
9
+ if ( $_POST !=="" ){
10
+ ●$_POSTがnullの場合とそうじゃない場合のif文
11
+ if ( $_POST ==null ){
12
+ ●$_POSTがFALSEの場合とそうじゃない場合のif文
13
+ if ( $_POST ==FALSE ){
10
14
 
11
15
  問題が発生しているソース:
12
16
  ```php
17
+ if ( $_POST !=="" ){
13
- $sql = 'SELECT '.
18
+ $sql = 'SELECT '.
14
19
  ' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.
15
20
  ' FROM kyujin LEFT JOIN job_type '.
16
21
  ' ON kyujin.job_type=job_type.id '.
17
22
  ' LEFT JOIN area '.
18
23
  ' ON kyujin.area = area.id '.
19
24
  ' where kyujin.area = ? AND ( kyujin.job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?)';
25
+ }
26
+ if ( $_POST =="" ){
27
+ $sql = 'select * from kyujin';
28
+ }
29
+
20
30
  ```
21
31
 
22
32
  ◆実現したいこと、
23
33
  何も選択せずに、検索ボタンを押した際に、
24
34
  全ての求人検索結果が表示されるようにしたい。
25
35
 
26
- 下記は、index.php全文となります。
36
+ 下記は、全文となります。
27
37
 
28
38
  ```php
29
- <!doctype html>
30
39
  <html lang="ja">
31
40
  <head>
32
41
  <meta charset="utf-8">
33
- <title>DB連携</title>
34
-
35
42
  </head>
36
43
  <body>
37
- <div class="clearfix wrap_w">
38
-
39
- <h1>お仕事検索</h1>
40
- <div class="wrap">
41
-
42
- <form action="./db_conect.php" method="POST">
43
- <table>
44
- <tbody>
45
- <tr>
46
- <th>勤務地を指定</th>
47
- <td>
48
- <select name="todofuken1" id="todofuken1">
49
- <option value="">都道府県を選択</option>
50
- <option value="13">東京都</option>
51
- <option value="14">神奈川県</option>
52
- <option value="15">埼玉県</option>
53
- <option value="16">千葉県</option>
54
- <option value="17">茨城県</option>
55
- <option value="19">大阪府</option>
56
- <option value="20">兵庫県</option>
57
- <option value="21">京都府</option>
58
- <option value="22">奈良県</option>
59
- <option value="23">滋賀県</option>
60
- <option value="24">和歌山県</option>
61
- <option value="25">三重県</option>
62
- <option value="08">広島県</option>
63
- <option value="07">山口県</option>
64
- <option value="27">島根県</option>
65
- <option value="28">鳥取県</option>
66
- <option value="29">香川県</option>
67
- <option value="30">高知県</option>
68
- <option value="31">愛媛県</option>
69
- <option value="32">徳島県</option>
70
- <option value="26">岡山県</option>
71
- <option value="01">福岡県</option>
72
- </select>
73
- </td>
74
- </tr>
75
-
76
-
77
-
78
- <tr><th>職種を指定</th>
79
- <td>
80
- <div class="three_line clear">
81
- <input type="checkbox" name="SHOKUSHU_CD[]" value="1" id="shokushuLoop1">
82
- <label for="shokushuLoop1">オフィスワーク・事務</label>
83
- <input type="checkbox" name="SHOKUSHU_CD[]" value="2" id="shokushuLoop2">
84
- <label for="shokushuLoop2">営業・販売・サービス</label>
85
- <input type="checkbox" name="SHOKUSHU_CD[]" value="3" id="shokushuLoop3">
86
- <label for="shokushuLoop3">Web・クリエイティブ</label>
87
- </div>
88
- </td>
89
- </tr>
90
-
91
-
92
- <tr><th>時給を指定</th>
93
- <td>
94
- <input type="text" class="text_input_s" name="PAY_START" maxlength="8" size="8" value="" style="ime-mode:disabled">&nbsp;円以上〜
95
-
96
- </td>
97
- </tr>
98
- <tr><th>キーワードを指定</th><td><input type="text" class="text_input_l" name="FREE_KEYWORD" maxlength="30" size="20" value="" style="ime-mode:active" placeholder="キーワードを入力してください。"></td></tr>
99
- <tr>
100
- <th>こだわり条件を指定</th>
101
- <td>
102
- <div class="accordion_block">
103
- <h2 style="background-image: url(&quot;../../img/common/icon_arrow_up01.png&quot;);">働き方・特徴</h2>
104
- <div class="accordion_box three_line clearfix" style="display: block;">
105
- <input type="checkbox" name="TOKUCYO[]" value="紹介予定派遣" id="tokucyoLoop1101"><label for="tokucyoLoop1101">紹介予定派遣</label>
106
- <input type="checkbox" name="TOKUCYO[]" value="1日7時間未満" id="tokucyoLoop1102"><label for="tokucyoLoop1102">1日7時間未満</label>
107
- </div>
108
- </div>
109
-
110
- <div class="accordion_block">
111
- <h2 style="background-image: url(&quot;../../img/common/icon_arrow_up01.png&quot;);">業界</h2>
112
- <div class="accordion_box three_line clearfix" style="display: block;">
113
- <input type="checkbox" name="GYOUKAI[]" value="マスコミ関連" id="tokucyoLoop3301"><label for="tokucyoLoop3301">マスコミ関連</label>
114
- <input type="checkbox" name="GYOUKAI[]" value="金融関連" id="tokucyoLoop3302"><label for="tokucyoLoop3302">金融関連</label>
115
- <input type="checkbox" name="GYOUKAI[]" value="流通・サービス関連" id="tokucyoLoop3303"><label for="tokucyoLoop3303">流通・サービス関連</label>
116
- <input type="checkbox" name="GYOUKAI[]" value="IT・Web関連" id="tokucyoLoop3304"><label for="tokucyoLoop3304">IT・Web関連</label>
117
- </div>
118
- </div>
119
-
120
- </td>
121
-
122
- </tr>
123
-
124
-
125
-
126
- </tbody>
127
-
128
-
129
-
130
- </table>
131
- <p class="center"><input type="submit" value="この条件で検索する"></p>
132
- </form>
133
- <!--</wrap>-->
134
- </div>
135
-
136
- <div class="kekka">
137
-
138
- </div></div>
139
- </body>
140
- </html>
141
-
142
-
143
-
144
- ```
145
-
146
-
147
- 下記は、db.conect.php全文となります。
148
-
149
- ```php
150
- <html lang="ja">
151
- <head>
152
- <meta charset="utf-8">
153
- <title>DB連携</title>
154
- </head>
155
- <body>
156
44
  <?php
157
45
  require_once "../common_function.php";
158
- // pdoはDBとPHPの間を取り持つオブジェクト
159
46
 
160
47
  try{
161
- //var_dump($_POST);
48
+
162
- $pdo = new PDO('sqlite:../zz.db');
49
+ $pdo = new PDO('sqlite:../haken.db');
163
50
 
164
- //$sql = 'select * from kyujin';
165
- // $sql = 'insert into kyujin (job_type,gyoukai,jikyu) values (?,?,?)';
166
- // $sql= 'select * from kyujin where area = ? OR job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?';
167
51
 
168
- $sql = 'SELECT '.
169
- ' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.
170
- ' FROM kyujin LEFT JOIN job_type '.
171
- ' ON kyujin.job_type=job_type.id '.
172
- ' LEFT JOIN area '.
173
- ' ON kyujin.area = area.id '.
174
- ' where kyujin.area = ? AND ( kyujin.job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?)';
175
-
176
-
177
- // $sql= 'select * from kyujin where jikyu=?';
178
- // sqlの準備
179
- $stmt = $pdo -> prepare($sql);
180
-
181
- //勤務地
182
52
  $todofuken = $_POST["todofuken1"];
183
53
 
184
54
  //職種
@@ -196,6 +66,24 @@
196
66
  //業界
197
67
  $gyoukai = $_POST["GYOUKAI"];
198
68
 
69
+
70
+ if ( $_POST !=="" ){
71
+ $sql = 'SELECT '.
72
+ ' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.
73
+ ' FROM kyujin LEFT JOIN job_type '.
74
+ ' ON kyujin.job_type=job_type.id '.
75
+ ' LEFT JOIN area '.
76
+ ' ON kyujin.area = area.id '.
77
+ ' where kyujin.area = ? AND ( kyujin.job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?)';
78
+ }
79
+ if ( $_POST =="" ){
80
+ $sql = 'select * from kyujin';
81
+ }
82
+
83
+
84
+ // $sql= 'select * from kyujin where jikyu=?';
85
+ // sqlの準備
86
+ $stmt = $pdo -> prepare($sql);
199
87
  //データを?に入れることをbindという bindは危険なコードを無害化する
200
88
  $stmt->bindParam(1, $todofuken , PDO::PARAM_INT);
201
89
  $stmt->bindParam(2, $syokushu[0] , PDO::PARAM_INT);

3

タイトル変更

2017/10/17 13:02

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- 検索結果ページで、何も選択しない際に、全件数表示されない。
1
+ 検索結果ページで、nullの場合全件数表示されない。
body CHANGED
File without changes

2

サンプルデータ追記とソースを追記しております。

2017/10/15 21:39

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,9 @@
5
5
  問題:何も選択せずに検索ボタンを押すと、
6
6
  0件と表示される。
7
7
 
8
+ サンプルデータ:
9
+ [https://test170701-mh0926.c9users.io/jobsearch/](https://test170701-mh0926.c9users.io/jobsearch/)
10
+
8
11
  問題が発生しているソース:
9
12
  ```php
10
13
  $sql = 'SELECT '.
@@ -20,11 +23,129 @@
20
23
  何も選択せずに、検索ボタンを押した際に、
21
24
  全ての求人検索結果が表示されるようにしたい。
22
25
 
23
- https://test170701-mh0926.c9users.io/jobsearch/
26
+ 下記は、index.php全文となります。
24
27
 
28
+ ```php
29
+ <!doctype html>
30
+ <html lang="ja">
31
+ <head>
32
+ <meta charset="utf-8">
33
+ <title>DB連携</title>
25
34
 
26
- 下記は、ソース全文となります。
35
+ </head>
36
+ <body>
37
+ <div class="clearfix wrap_w">
38
+
39
+ <h1>お仕事検索</h1>
40
+ <div class="wrap">
27
41
 
42
+ <form action="./db_conect.php" method="POST">
43
+ <table>
44
+ <tbody>
45
+ <tr>
46
+ <th>勤務地を指定</th>
47
+ <td>
48
+ <select name="todofuken1" id="todofuken1">
49
+ <option value="">都道府県を選択</option>
50
+ <option value="13">東京都</option>
51
+ <option value="14">神奈川県</option>
52
+ <option value="15">埼玉県</option>
53
+ <option value="16">千葉県</option>
54
+ <option value="17">茨城県</option>
55
+ <option value="19">大阪府</option>
56
+ <option value="20">兵庫県</option>
57
+ <option value="21">京都府</option>
58
+ <option value="22">奈良県</option>
59
+ <option value="23">滋賀県</option>
60
+ <option value="24">和歌山県</option>
61
+ <option value="25">三重県</option>
62
+ <option value="08">広島県</option>
63
+ <option value="07">山口県</option>
64
+ <option value="27">島根県</option>
65
+ <option value="28">鳥取県</option>
66
+ <option value="29">香川県</option>
67
+ <option value="30">高知県</option>
68
+ <option value="31">愛媛県</option>
69
+ <option value="32">徳島県</option>
70
+ <option value="26">岡山県</option>
71
+ <option value="01">福岡県</option>
72
+ </select>
73
+ </td>
74
+ </tr>
75
+
76
+
77
+
78
+ <tr><th>職種を指定</th>
79
+ <td>
80
+ <div class="three_line clear">
81
+ <input type="checkbox" name="SHOKUSHU_CD[]" value="1" id="shokushuLoop1">
82
+ <label for="shokushuLoop1">オフィスワーク・事務</label>
83
+ <input type="checkbox" name="SHOKUSHU_CD[]" value="2" id="shokushuLoop2">
84
+ <label for="shokushuLoop2">営業・販売・サービス</label>
85
+ <input type="checkbox" name="SHOKUSHU_CD[]" value="3" id="shokushuLoop3">
86
+ <label for="shokushuLoop3">Web・クリエイティブ</label>
87
+ </div>
88
+ </td>
89
+ </tr>
90
+
91
+
92
+ <tr><th>時給を指定</th>
93
+ <td>
94
+ <input type="text" class="text_input_s" name="PAY_START" maxlength="8" size="8" value="" style="ime-mode:disabled">&nbsp;円以上〜
95
+
96
+ </td>
97
+ </tr>
98
+ <tr><th>キーワードを指定</th><td><input type="text" class="text_input_l" name="FREE_KEYWORD" maxlength="30" size="20" value="" style="ime-mode:active" placeholder="キーワードを入力してください。"></td></tr>
99
+ <tr>
100
+ <th>こだわり条件を指定</th>
101
+ <td>
102
+ <div class="accordion_block">
103
+ <h2 style="background-image: url(&quot;../../img/common/icon_arrow_up01.png&quot;);">働き方・特徴</h2>
104
+ <div class="accordion_box three_line clearfix" style="display: block;">
105
+ <input type="checkbox" name="TOKUCYO[]" value="紹介予定派遣" id="tokucyoLoop1101"><label for="tokucyoLoop1101">紹介予定派遣</label>
106
+ <input type="checkbox" name="TOKUCYO[]" value="1日7時間未満" id="tokucyoLoop1102"><label for="tokucyoLoop1102">1日7時間未満</label>
107
+ </div>
108
+ </div>
109
+
110
+ <div class="accordion_block">
111
+ <h2 style="background-image: url(&quot;../../img/common/icon_arrow_up01.png&quot;);">業界</h2>
112
+ <div class="accordion_box three_line clearfix" style="display: block;">
113
+ <input type="checkbox" name="GYOUKAI[]" value="マスコミ関連" id="tokucyoLoop3301"><label for="tokucyoLoop3301">マスコミ関連</label>
114
+ <input type="checkbox" name="GYOUKAI[]" value="金融関連" id="tokucyoLoop3302"><label for="tokucyoLoop3302">金融関連</label>
115
+ <input type="checkbox" name="GYOUKAI[]" value="流通・サービス関連" id="tokucyoLoop3303"><label for="tokucyoLoop3303">流通・サービス関連</label>
116
+ <input type="checkbox" name="GYOUKAI[]" value="IT・Web関連" id="tokucyoLoop3304"><label for="tokucyoLoop3304">IT・Web関連</label>
117
+ </div>
118
+ </div>
119
+
120
+ </td>
121
+
122
+ </tr>
123
+
124
+
125
+
126
+ </tbody>
127
+
128
+
129
+
130
+ </table>
131
+ <p class="center"><input type="submit" value="この条件で検索する"></p>
132
+ </form>
133
+ <!--</wrap>-->
134
+ </div>
135
+
136
+ <div class="kekka">
137
+
138
+ </div></div>
139
+ </body>
140
+ </html>
141
+
142
+
143
+
144
+ ```
145
+
146
+
147
+ 下記は、db.conect.php全文となります。
148
+
28
149
  ```php
29
150
  <html lang="ja">
30
151
  <head>

1

追記

2017/10/15 14:22

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,30 @@
1
1
  勤務地等何かを選択すると、
2
2
  検索結果が表示されるのですが、
3
- 何も選択せずに検索ボタンを押すと、
4
- 0件となってしまいます。
5
3
  全件表示がうまくいきません。
6
4
 
5
+ 問題:何も選択せずに検索ボタンを押すと、
6
+ 0件と表示される。
7
+
8
+ 問題が発生しているソース:
9
+ ```php
10
+ $sql = 'SELECT '.
11
+ ' kyujin.id, jikyu, work_type, gyoukai, keisai_start, keisai_end, job_type.job_type, area.area'.
12
+ ' FROM kyujin LEFT JOIN job_type '.
13
+ ' ON kyujin.job_type=job_type.id '.
14
+ ' LEFT JOIN area '.
15
+ ' ON kyujin.area = area.id '.
16
+ ' where kyujin.area = ? AND ( kyujin.job_type=? OR jikyu>=? OR work_type=? OR gyoukai=?)';
17
+ ```
18
+
19
+ ◆実現したいこと、
20
+ 何も選択せずに、検索ボタンを押した際に、
21
+ 全ての求人検索結果が表示されるようにしたい。
22
+
7
23
  https://test170701-mh0926.c9users.io/jobsearch/
8
24
 
9
25
 
26
+ 下記は、ソース全文となります。
27
+
10
28
  ```php
11
29
  <html lang="ja">
12
30
  <head>