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

質問編集履歴

5

エラー内容です

2018/09/04 16:37

投稿

daamasu
daamasu

スコア12

title CHANGED
File without changes
body CHANGED
@@ -293,4 +293,18 @@
293
293
  <p><input type="submit" value="検索"></p>
294
294
  </form>
295
295
 
296
+ ```エラー内容
297
+ Fatal error: Uncaught Error: Call to undefined function bindValue() in /Applications/MAMP/htdocs/size.php:79 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/size.php on line 79
298
+ とかいてありましたが解決方法が判りません。
299
+ 79行目が```php
300
+ else {
301
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
302
+ $stmt=$pdo->prepare($sql2);
303
+ //ここが79行目でした $stmt=bindValue(':wide', $wide);
304
+ $stmt=bindValue(':height',$height);
305
+ $stmt->execute();
306
+ $count=$stmt->rowCount();
307
+ print "ヒット件数".$count."件です。";
308
+ echo "</br>";
309
+ }
296
310
  ```

4

htmlの修正

2018/09/04 16:37

投稿

daamasu
daamasu

スコア12

title CHANGED
File without changes
body CHANGED
@@ -280,7 +280,7 @@
280
280
  <option value="広い">広い</option>
281
281
  </select>
282
282
 
283
- <h2>甲の高さ</h2>
283
+ <h2>高さ</h2>
284
284
  <select name="height">
285
285
  <option value="未選択">選択して下さい</option>
286
286
  <option value="低い">低い</option>

3

htmlのセレクトボックスの部分を追加しました

2018/09/04 14:34

投稿

daamasu
daamasu

スコア12

title CHANGED
File without changes
body CHANGED
@@ -266,4 +266,31 @@
266
266
 
267
267
 
268
268
  ```
269
- エラー表示を入れましたが何も変わりませんでした
269
+ エラー表示を入れましたが何も変わりませんでした
270
+ ```html
271
+
272
+ <form action="◯.php" method="POST">
273
+ <p>
274
+ <select name="wide">
275
+ <option value="未選択">選択して下さい</option>
276
+ <option value="狭い">狭い</option>
277
+ <option value="やや狭い">やや狭い</option>
278
+ <option value="標準">標準</option>
279
+ <option value="やや広い">やや広い</option>
280
+ <option value="広い">広い</option>
281
+ </select>
282
+
283
+ <h2>甲の高さ</h2>
284
+ <select name="height">
285
+ <option value="未選択">選択して下さい</option>
286
+ <option value="低い">低い</option>
287
+ <option value="やや低い">やや低い</option>
288
+ <option value="標準">標準</option>
289
+ <option value="やや高い">やや高い</option>
290
+ <option value="やや高い">やや高い</option>
291
+ </select>
292
+ </p>
293
+ <p><input type="submit" value="検索"></p>
294
+ </form>
295
+
296
+ ```

2

エラーを入れました

2018/09/04 14:33

投稿

daamasu
daamasu

スコア12

title CHANGED
File without changes
body CHANGED
@@ -174,4 +174,96 @@
174
174
  ```
175
175
  という感じでcatchをtryの後に持って来るとプログラムは処理されますがforeach文の部分が反応しません。
176
176
  ご迷惑をかけて申し訳ありませんでした。
177
- 宜しくお願いいたします。
177
+ 宜しくお願いいたします。
178
+ ```php
179
+ <?php
180
+ try{
181
+ $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','◯','◯',
182
+ array(PDO::ATTR_EMULATE_PREPARES => false));
183
+
184
+ $wide=$_POST['wide'];
185
+ $height=$_POST['height'];
186
+ echo "</br>";
187
+ echo "入力内容";
188
+ echo "</br>";
189
+ echo "幅:";
190
+ echo $wide;
191
+ echo "</br>";
192
+ echo "高さ:";
193
+ echo $height;
194
+ echo "</br>";
195
+
196
+
197
+ //db検索
198
+ if( $wide == '未選択' && $height == '未選択' ){
199
+ //両方未選択
200
+ echo '両方未選択でした。';
201
+ $sql2="SELECT * FROM db2";
202
+ $stmt=$pdo->prepare($sql2);
203
+ $stmt=bindValue(':wide',$wide);
204
+ $stmt=bindValue(':height',$height);
205
+ $stmt->execute();
206
+ $count=$stmt->rowCount();
207
+ print "ヒット件数".$count."件です。";
208
+ echo "</br>";
209
+ }
210
+ else if( $wide == "未選択" ){
211
+ $sql2="SELECT * FROM db2 WHERE height = :height";
212
+ $stmt=$pdo->prepare($sql2);
213
+ $stmt=bindValue(':height', $height);
214
+ $stmt->execute();
215
+ $count=$stmt->rowCount();
216
+ print "ヒット件数".$count."件です。";
217
+ echo "</br>";
218
+ }
219
+
220
+ else if( $height =='未選択'){
221
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
222
+ $stmt=$pdo->prepare($sql2);
223
+ $stmt=bindValue(':wide', $wide);
224
+ $stmt->execute();
225
+ $count=$stmt->rowCount();
226
+ print "ヒット件数".$count."件です。";
227
+ echo "</br>";
228
+ }
229
+
230
+
231
+ else {
232
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
233
+ $stmt=$pdo->prepare($sql2);
234
+ $stmt=bindValue(':wide',$wide);
235
+ $stmt=bindValue(':height',$height);
236
+ $stmt->execute();
237
+ $count=$stmt->rowCount();
238
+ print "ヒット件数".$count."件です。";
239
+ echo "</br>";
240
+         
241
+ // catchをこの部分に持って来ます。
242
+ }catch (PDOException $e) {
243
+              //ここにエラー表示を持って来ました
244
+               ini_set('display_errors', "On");
245
+ var_dump($e);
246
+ exit('データベース接続失敗。'.$e->getMessage());
247
+ }
248
+ }
249
+
250
+
251
+
252
+ //絞り込んだ情報を表示します
253
+ <?php
254
+ foreach($stmt as $row):
255
+ ?>
256
+ <img src="<?php echo $row['pic'] ?>">
257
+ <?php
258
+ echo $row['brand'].' '.$row['name'].'価格:'.$row['price'];
259
+ ?>
260
+ <a href="<?php $row['url'] ?>">yahoo ショッピングでみる</a>
261
+ <a href="<?php $row['url'] ?>">楽天市場でみる</a>
262
+ <?php endforeach ?>
263
+
264
+
265
+
266
+
267
+
268
+ ```
269
+ エラー表示を入れましたが何も変わりませんでした

1

書き直しました

2018/09/04 13:55

投稿

daamasu
daamasu

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,19 +1,71 @@
1
1
  phpからmySQLのデータを2つの条件で絞り込み、表示したいのですがうまく行きません
2
2
 
3
3
  ```php
4
- <?php
4
+ <?php
5
5
  try{
6
- $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','','',
6
+ $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','root','root',
7
7
  array(PDO::ATTR_EMULATE_PREPARES => false));
8
8
 
9
+ $wide=$_POST['wide'];
10
+ $height=$_POST['height'];
11
+ echo "</br>";
12
+ echo "入力内容";
13
+ echo "</br>";
14
+ echo "幅:";
15
+ echo $wide;
16
+ echo "</br>";
17
+ echo "高さ:";
18
+ echo $height;
19
+ echo "</br>";
20
+
21
+
22
+ //db検索
23
+ if( $wide == '未選択' && $height == '未選択' ){
9
-         //ここでは問題がないです
24
+ //両方未選択
10
-    //ここmySQLのデータを絞り込み
25
+ echo '両方未選択した。';
26
+ $sql2="SELECT * FROM db2";
27
+ $stmt=$pdo->prepare($sql2);
28
+ $stmt=bindValue(':wide',$wide);
29
+ $stmt=bindValue(':height',$height);
30
+ $stmt->execute();
31
+ $count=$stmt->rowCount();
32
+ print "ヒット件数".$count."件です。";
33
+ echo "</br>";
34
+ }
35
+ else if( $wide == "未選択" ){
36
+ $sql2="SELECT * FROM db2 WHERE height = :height";
37
+ $stmt=$pdo->prepare($sql2);
38
+ $stmt=bindValue(':height', $height);
39
+ $stmt->execute();
40
+ $count=$stmt->rowCount();
41
+ print "ヒット件数".$count."件です。";
42
+ echo "</br>";
43
+ }
44
+
45
+ else if( $height =='未選択'){
46
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
47
+ $stmt=$pdo->prepare($sql2);
48
+ $stmt=bindValue(':wide', $wide);
49
+ $stmt->execute();
50
+ $count=$stmt->rowCount();
51
+ print "ヒット件数".$count."件です。";
52
+ echo "</br>";
53
+ }
54
+
55
+
56
+ else {
57
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
58
+ $stmt=$pdo->prepare($sql2);
59
+ $stmt=bindValue(':wide',$wide);
60
+ $stmt=bindValue(':height',$height);
61
+ $stmt->execute();
62
+ $count=$stmt->rowCount();
63
+ print "ヒット件数".$count."件です。";
64
+ echo "</br>";
65
+ }
11
66
  }
12
- }
13
-
14
-
15
- //絞り込んだ情報を表示します
67
+ ?>
16
- <?php
68
+ <?php
17
69
  foreach($stmt as $row):
18
70
  ?>
19
71
  <img src="<?php echo $row['pic'] ?>">
@@ -24,13 +76,11 @@
24
76
  <a href="<?php $row['url'] ?>">楽天市場でみる</a>
25
77
  <?php endforeach ?>
26
78
 
27
- //この部分
28
- <?php catch (PDOException $e) {
79
+ <?php catch (PDOException $e) {
29
80
  var_dump($e);
30
81
  exit('データベース接続失敗。'.$e->getMessage());
31
82
  }
32
83
  ?>
33
-
34
84
  ```
35
85
  というようにすると表示ができません。(画面が真っ白)ですが、
36
86
  ```php
@@ -39,8 +89,63 @@
39
89
  $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','◯','◯',
40
90
  array(PDO::ATTR_EMULATE_PREPARES => false));
41
91
 
92
+ $wide=$_POST['wide'];
93
+ $height=$_POST['height'];
94
+ echo "</br>";
95
+ echo "入力内容";
96
+ echo "</br>";
97
+ echo "幅:";
98
+ echo $wide;
99
+ echo "</br>";
100
+ echo "高さ:";
101
+ echo $height;
102
+ echo "</br>";
103
+
104
+
105
+ //db検索
106
+ if( $wide == '未選択' && $height == '未選択' ){
42
-         //ここでは問題がないです
107
+ //両方未選択
43
-    //ここmySQLのデータを絞り込み
108
+ echo '両方未選択した。';
109
+ $sql2="SELECT * FROM db2";
110
+ $stmt=$pdo->prepare($sql2);
111
+ $stmt=bindValue(':wide',$wide);
112
+ $stmt=bindValue(':height',$height);
113
+ $stmt->execute();
114
+ $count=$stmt->rowCount();
115
+ print "ヒット件数".$count."件です。";
116
+ echo "</br>";
117
+ }
118
+ else if( $wide == "未選択" ){
119
+ $sql2="SELECT * FROM db2 WHERE height = :height";
120
+ $stmt=$pdo->prepare($sql2);
121
+ $stmt=bindValue(':height', $height);
122
+ $stmt->execute();
123
+ $count=$stmt->rowCount();
124
+ print "ヒット件数".$count."件です。";
125
+ echo "</br>";
126
+ }
127
+
128
+ else if( $height =='未選択'){
129
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
130
+ $stmt=$pdo->prepare($sql2);
131
+ $stmt=bindValue(':wide', $wide);
132
+ $stmt->execute();
133
+ $count=$stmt->rowCount();
134
+ print "ヒット件数".$count."件です。";
135
+ echo "</br>";
136
+ }
137
+
138
+
139
+ else {
140
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
141
+ $stmt=$pdo->prepare($sql2);
142
+ $stmt=bindValue(':wide',$wide);
143
+ $stmt=bindValue(':height',$height);
144
+ $stmt->execute();
145
+ $count=$stmt->rowCount();
146
+ print "ヒット件数".$count."件です。";
147
+ echo "</br>";
148
+         
44
149
  // catchをこの部分に持って来ます。
45
150
  }catch (PDOException $e) {
46
151
  var_dump($e);
@@ -67,4 +172,6 @@
67
172
 
68
173
 
69
174
  ```
70
- という感じでcatchをtryの後に持って来るとプログラムは処理されますがforeach文の部分が反応しません。
175
+ という感じでcatchをtryの後に持って来るとプログラムは処理されますがforeach文の部分が反応しません。
176
+ ご迷惑をかけて申し訳ありませんでした。
177
+ 宜しくお願いいたします。