質問編集履歴

5

エラー内容です

2018/09/04 16:37

投稿

daamasu
daamasu

スコア12

test CHANGED
File without changes
test CHANGED
@@ -588,4 +588,32 @@
588
588
 
589
589
 
590
590
 
591
+ ```エラー内容
592
+
593
+ 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
594
+
595
+ とかいてありましたが解決方法が判りません。
596
+
597
+ 79行目が```php
598
+
599
+ else {
600
+
601
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
602
+
603
+ $stmt=$pdo->prepare($sql2);
604
+
605
+ //ここが79行目でした $stmt=bindValue(':wide', $wide);
606
+
607
+ $stmt=bindValue(':height',$height);
608
+
609
+ $stmt->execute();
610
+
611
+ $count=$stmt->rowCount();
612
+
613
+ print "ヒット件数".$count."件です。";
614
+
615
+ echo "</br>";
616
+
617
+ }
618
+
591
619
  ```

4

htmlの修正

2018/09/04 16:37

投稿

daamasu
daamasu

スコア12

test CHANGED
File without changes
test CHANGED
@@ -562,7 +562,7 @@
562
562
 
563
563
 
564
564
 
565
- <h2>甲の高さ</h2>
565
+ <h2>高さ</h2>
566
566
 
567
567
  <select name="height">
568
568
 

3

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

2018/09/04 14:34

投稿

daamasu
daamasu

スコア12

test CHANGED
File without changes
test CHANGED
@@ -535,3 +535,57 @@
535
535
  ```
536
536
 
537
537
  エラー表示を入れましたが何も変わりませんでした
538
+
539
+ ```html
540
+
541
+
542
+
543
+ <form action="◯.php" method="POST">
544
+
545
+ <p>
546
+
547
+ <select name="wide">
548
+
549
+ <option value="未選択">選択して下さい</option>
550
+
551
+ <option value="狭い">狭い</option>
552
+
553
+ <option value="やや狭い">やや狭い</option>
554
+
555
+ <option value="標準">標準</option>
556
+
557
+ <option value="やや広い">やや広い</option>
558
+
559
+ <option value="広い">広い</option>
560
+
561
+ </select>
562
+
563
+
564
+
565
+ <h2>甲の高さ</h2>
566
+
567
+ <select name="height">
568
+
569
+ <option value="未選択">選択して下さい</option>
570
+
571
+ <option value="低い">低い</option>
572
+
573
+ <option value="やや低い">やや低い</option>
574
+
575
+ <option value="標準">標準</option>
576
+
577
+ <option value="やや高い">やや高い</option>
578
+
579
+ <option value="やや高い">やや高い</option>
580
+
581
+ </select>
582
+
583
+ </p>
584
+
585
+ <p><input type="submit" value="検索"></p>
586
+
587
+ </form>
588
+
589
+
590
+
591
+ ```

2

エラーを入れました

2018/09/04 14:33

投稿

daamasu
daamasu

スコア12

test CHANGED
File without changes
test CHANGED
@@ -351,3 +351,187 @@
351
351
  ご迷惑をかけて申し訳ありませんでした。
352
352
 
353
353
  宜しくお願いいたします。
354
+
355
+ ```php
356
+
357
+ <?php
358
+
359
+ try{
360
+
361
+ $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','◯','◯',
362
+
363
+ array(PDO::ATTR_EMULATE_PREPARES => false));
364
+
365
+
366
+
367
+ $wide=$_POST['wide'];
368
+
369
+ $height=$_POST['height'];
370
+
371
+ echo "</br>";
372
+
373
+ echo "入力内容";
374
+
375
+ echo "</br>";
376
+
377
+ echo "幅:";
378
+
379
+ echo $wide;
380
+
381
+ echo "</br>";
382
+
383
+ echo "高さ:";
384
+
385
+ echo $height;
386
+
387
+ echo "</br>";
388
+
389
+
390
+
391
+
392
+
393
+ //db検索
394
+
395
+ if( $wide == '未選択' && $height == '未選択' ){
396
+
397
+ //両方未選択
398
+
399
+ echo '両方未選択でした。';
400
+
401
+ $sql2="SELECT * FROM db2";
402
+
403
+ $stmt=$pdo->prepare($sql2);
404
+
405
+ $stmt=bindValue(':wide',$wide);
406
+
407
+ $stmt=bindValue(':height',$height);
408
+
409
+ $stmt->execute();
410
+
411
+ $count=$stmt->rowCount();
412
+
413
+ print "ヒット件数".$count."件です。";
414
+
415
+ echo "</br>";
416
+
417
+ }
418
+
419
+ else if( $wide == "未選択" ){
420
+
421
+ $sql2="SELECT * FROM db2 WHERE height = :height";
422
+
423
+ $stmt=$pdo->prepare($sql2);
424
+
425
+ $stmt=bindValue(':height', $height);
426
+
427
+ $stmt->execute();
428
+
429
+ $count=$stmt->rowCount();
430
+
431
+ print "ヒット件数".$count."件です。";
432
+
433
+ echo "</br>";
434
+
435
+ }
436
+
437
+
438
+
439
+ else if( $height =='未選択'){
440
+
441
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
442
+
443
+ $stmt=$pdo->prepare($sql2);
444
+
445
+ $stmt=bindValue(':wide', $wide);
446
+
447
+ $stmt->execute();
448
+
449
+ $count=$stmt->rowCount();
450
+
451
+ print "ヒット件数".$count."件です。";
452
+
453
+ echo "</br>";
454
+
455
+ }
456
+
457
+
458
+
459
+
460
+
461
+ else {
462
+
463
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
464
+
465
+ $stmt=$pdo->prepare($sql2);
466
+
467
+ $stmt=bindValue(':wide',$wide);
468
+
469
+ $stmt=bindValue(':height',$height);
470
+
471
+ $stmt->execute();
472
+
473
+ $count=$stmt->rowCount();
474
+
475
+ print "ヒット件数".$count."件です。";
476
+
477
+ echo "</br>";
478
+
479
+         
480
+
481
+ // catchをこの部分に持って来ます。
482
+
483
+ }catch (PDOException $e) {
484
+
485
+              //ここにエラー表示を持って来ました
486
+
487
+               ini_set('display_errors', "On");
488
+
489
+ var_dump($e);
490
+
491
+ exit('データベース接続失敗。'.$e->getMessage());
492
+
493
+ }
494
+
495
+ }
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+ //絞り込んだ情報を表示します
504
+
505
+ <?php
506
+
507
+ foreach($stmt as $row):
508
+
509
+ ?>
510
+
511
+ <img src="<?php echo $row['pic'] ?>">
512
+
513
+ <?php
514
+
515
+ echo $row['brand'].' '.$row['name'].'価格:'.$row['price'];
516
+
517
+ ?>
518
+
519
+ <a href="<?php $row['url'] ?>">yahoo ショッピングでみる</a>
520
+
521
+ <a href="<?php $row['url'] ?>">楽天市場でみる</a>
522
+
523
+ <?php endforeach ?>
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+ ```
536
+
537
+ エラー表示を入れましたが何も変わりませんでした

1

書き直しました

2018/09/04 13:55

投稿

daamasu
daamasu

スコア12

test CHANGED
File without changes
test CHANGED
@@ -4,8 +4,174 @@
4
4
 
5
5
  ```php
6
6
 
7
+ <?php
8
+
9
+ try{
10
+
11
+ $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','root','root',
12
+
13
+ array(PDO::ATTR_EMULATE_PREPARES => false));
14
+
15
+
16
+
17
+ $wide=$_POST['wide'];
18
+
19
+ $height=$_POST['height'];
20
+
21
+ echo "</br>";
22
+
23
+ echo "入力内容";
24
+
25
+ echo "</br>";
26
+
27
+ echo "幅:";
28
+
29
+ echo $wide;
30
+
31
+ echo "</br>";
32
+
33
+ echo "高さ:";
34
+
35
+ echo $height;
36
+
37
+ echo "</br>";
38
+
39
+
40
+
41
+
42
+
43
+ //db検索
44
+
45
+ if( $wide == '未選択' && $height == '未選択' ){
46
+
47
+ //両方未選択
48
+
49
+ echo '両方未選択でした。';
50
+
51
+ $sql2="SELECT * FROM db2";
52
+
53
+ $stmt=$pdo->prepare($sql2);
54
+
55
+ $stmt=bindValue(':wide',$wide);
56
+
57
+ $stmt=bindValue(':height',$height);
58
+
59
+ $stmt->execute();
60
+
61
+ $count=$stmt->rowCount();
62
+
63
+ print "ヒット件数".$count."件です。";
64
+
65
+ echo "</br>";
66
+
67
+ }
68
+
69
+ else if( $wide == "未選択" ){
70
+
71
+ $sql2="SELECT * FROM db2 WHERE height = :height";
72
+
73
+ $stmt=$pdo->prepare($sql2);
74
+
75
+ $stmt=bindValue(':height', $height);
76
+
77
+ $stmt->execute();
78
+
79
+ $count=$stmt->rowCount();
80
+
81
+ print "ヒット件数".$count."件です。";
82
+
83
+ echo "</br>";
84
+
85
+ }
86
+
87
+
88
+
89
+ else if( $height =='未選択'){
90
+
91
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
92
+
93
+ $stmt=$pdo->prepare($sql2);
94
+
95
+ $stmt=bindValue(':wide', $wide);
96
+
97
+ $stmt->execute();
98
+
99
+ $count=$stmt->rowCount();
100
+
101
+ print "ヒット件数".$count."件です。";
102
+
103
+ echo "</br>";
104
+
105
+ }
106
+
107
+
108
+
109
+
110
+
111
+ else {
112
+
113
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
114
+
115
+ $stmt=$pdo->prepare($sql2);
116
+
117
+ $stmt=bindValue(':wide',$wide);
118
+
119
+ $stmt=bindValue(':height',$height);
120
+
121
+ $stmt->execute();
122
+
123
+ $count=$stmt->rowCount();
124
+
125
+ print "ヒット件数".$count."件です。";
126
+
127
+ echo "</br>";
128
+
129
+ }
130
+
131
+ }
132
+
133
+ ?>
134
+
7
135
  <?php
8
136
 
137
+ foreach($stmt as $row):
138
+
139
+ ?>
140
+
141
+ <img src="<?php echo $row['pic'] ?>">
142
+
143
+ <?php
144
+
145
+ echo $row['brand'].' '.$row['name'].'価格:'.$row['price'];
146
+
147
+ ?>
148
+
149
+ <a href="<?php $row['url'] ?>">yahoo ショッピングでみる</a>
150
+
151
+ <a href="<?php $row['url'] ?>">楽天市場でみる</a>
152
+
153
+ <?php endforeach ?>
154
+
155
+
156
+
157
+ <?php catch (PDOException $e) {
158
+
159
+ var_dump($e);
160
+
161
+ exit('データベース接続失敗。'.$e->getMessage());
162
+
163
+ }
164
+
165
+ ?>
166
+
167
+ ```
168
+
169
+ というようにすると表示ができません。(画面が真っ白)ですが、
170
+
171
+ ```php
172
+
173
+ <?php
174
+
9
175
  try{
10
176
 
11
177
  $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','◯','◯',
@@ -14,14 +180,134 @@
14
180
 
15
181
 
16
182
 
183
+ $wide=$_POST['wide'];
184
+
185
+ $height=$_POST['height'];
186
+
187
+ echo "</br>";
188
+
189
+ echo "入力内容";
190
+
191
+ echo "</br>";
192
+
193
+ echo "幅:";
194
+
195
+ echo $wide;
196
+
197
+ echo "</br>";
198
+
199
+ echo "高さ:";
200
+
201
+ echo $height;
202
+
203
+ echo "</br>";
204
+
205
+
206
+
207
+
208
+
209
+ //db検索
210
+
211
+ if( $wide == '未選択' && $height == '未選択' ){
212
+
17
-         //ここでは問題がないです
213
+ //両方未選択
18
-
214
+
19
-    //ここmySQLのデータを絞り込み
215
+ echo '両方未選択した。';
216
+
20
-
217
+ $sql2="SELECT * FROM db2";
218
+
219
+ $stmt=$pdo->prepare($sql2);
220
+
221
+ $stmt=bindValue(':wide',$wide);
222
+
223
+ $stmt=bindValue(':height',$height);
224
+
225
+ $stmt->execute();
226
+
227
+ $count=$stmt->rowCount();
228
+
229
+ print "ヒット件数".$count."件です。";
230
+
231
+ echo "</br>";
232
+
21
- }
233
+ }
234
+
235
+ else if( $wide == "未選択" ){
236
+
237
+ $sql2="SELECT * FROM db2 WHERE height = :height";
238
+
239
+ $stmt=$pdo->prepare($sql2);
240
+
241
+ $stmt=bindValue(':height', $height);
242
+
243
+ $stmt->execute();
244
+
245
+ $count=$stmt->rowCount();
246
+
247
+ print "ヒット件数".$count."件です。";
248
+
249
+ echo "</br>";
250
+
251
+ }
252
+
253
+
254
+
255
+ else if( $height =='未選択'){
256
+
257
+ $sql2="SELECT * FROM db2 WHERE wide = :wide";
258
+
259
+ $stmt=$pdo->prepare($sql2);
260
+
261
+ $stmt=bindValue(':wide', $wide);
262
+
263
+ $stmt->execute();
264
+
265
+ $count=$stmt->rowCount();
266
+
267
+ print "ヒット件数".$count."件です。";
268
+
269
+ echo "</br>";
270
+
271
+ }
272
+
273
+
274
+
275
+
276
+
277
+ else {
278
+
279
+ $sql2="SELECT * FROM db2 WHERE wide = :wide AND height = :height";
280
+
281
+ $stmt=$pdo->prepare($sql2);
282
+
283
+ $stmt=bindValue(':wide',$wide);
284
+
285
+ $stmt=bindValue(':height',$height);
286
+
287
+ $stmt->execute();
288
+
289
+ $count=$stmt->rowCount();
290
+
291
+ print "ヒット件数".$count."件です。";
292
+
293
+ echo "</br>";
294
+
295
+         
296
+
297
+ // catchをこの部分に持って来ます。
298
+
299
+ }catch (PDOException $e) {
300
+
301
+ var_dump($e);
302
+
303
+ exit('データベース接続失敗。'.$e->getMessage());
22
304
 
23
305
  }
24
306
 
307
+ }
308
+
309
+
310
+
25
311
 
26
312
 
27
313
 
@@ -50,90 +336,18 @@
50
336
 
51
337
 
52
338
 
53
- //この部分
339
+
54
-
55
- <?php catch (PDOException $e) {
340
+
56
-
57
- var_dump($e);
341
+
58
-
59
- exit('データベース接続失敗。'.$e->getMessage());
342
+
60
-
61
- }
343
+
62
-
63
- ?>
64
344
 
65
345
 
66
346
 
67
347
  ```
68
348
 
69
- というようにすると表示ができません。(画面が真っ白)ですが、
70
-
71
- ```php
72
-
73
- <?php
74
-
75
- try{
76
-
77
- $pdo = new PDO('mysql:host=localhost;dbname=db2;charset=utf8','◯','◯',
78
-
79
- array(PDO::ATTR_EMULATE_PREPARES => false));
80
-
81
-
82
-
83
-         //ここでは問題がないです
84
-
85
-    //ここでmySQLのデータを絞り込み
86
-
87
- // catchをこの部分に持って来ます。
88
-
89
- }catch (PDOException $e) {
90
-
91
- var_dump($e);
92
-
93
- exit('データベース接続失敗。'.$e->getMessage());
94
-
95
- }
96
-
97
- }
98
-
99
-
100
-
101
-
102
-
103
-
104
-
105
- //絞り込んだ情報を表示します
106
-
107
- <?php
108
-
109
- foreach($stmt as $row):
110
-
111
- ?>
112
-
113
- <img src="<?php echo $row['pic'] ?>">
114
-
115
- <?php
116
-
117
- echo $row['brand'].' '.$row['name'].'価格:'.$row['price'];
118
-
119
- ?>
120
-
121
- <a href="<?php $row['url'] ?>">yahoo ショッピングでみる</a>
122
-
123
- <a href="<?php $row['url'] ?>">楽天市場でみる</a>
124
-
125
- <?php endforeach ?>
126
-
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
-
136
-
137
- ```
138
-
139
349
  という感じでcatchをtryの後に持って来るとプログラムは処理されますがforeach文の部分が反応しません。
350
+
351
+ ご迷惑をかけて申し訳ありませんでした。
352
+
353
+ 宜しくお願いいたします。