質問編集履歴

1

functionを使ってまとめましたが、Fatal error: Call to undefined functionと表示されます。

2021/03/04 06:24

投稿

turtle410
turtle410

スコア13

test CHANGED
File without changes
test CHANGED
@@ -10,45 +10,15 @@
10
10
 
11
11
 
12
12
 
13
- ### 該当のソースコード
14
13
 
15
14
 
16
-
17
- ```PHP
18
-
19
- // ユーザーが検索した場合の処理
20
-
21
- if (isset($_POST['keyword']) === TRUE && mb_strlen ($_POST['keyword']) > 0) {
15
+ if (isset($_POST['keyword']) && mb_strlen ($_POST['keyword']) > 0) {
22
16
 
23
17
  $keyword = trim($_POST['keyword']);
24
18
 
25
19
  try {
26
20
 
27
- $sql = 'SELECT product.id, name, price, img, status, stock
28
-
29
- FROM product
30
-
31
- JOIN item_stock
32
-
33
- ON product.id = item_stock.stock_id
34
-
35
- WHERE name like ?';
36
-
37
- $stmt = $dbh->prepare($sql);
38
-
39
- $stmt->bindValue(1, $keyword, PDO::PARAM_STR); //文字列なのでSTRにかえる
40
-
41
- // SQLを実行
42
-
43
- $stmt->execute(['%' . $keyword . '%']);
44
-
45
- $result = $stmt->fetchALL();
46
-
47
- // print_r($result);
48
-
49
- // exit();
21
+ partial_match_search();
50
-
51
-
52
22
 
53
23
  if (count($result) > 0 ) {
54
24
 
@@ -56,35 +26,7 @@
56
26
 
57
27
  } else {
58
28
 
59
- try {
60
-
61
- // ステータスが1(公開)の販売商品のみを一覧で表示する。
62
-
63
- $sql = 'SELECT product.id, name, price, img, status, stock
64
-
65
- FROM product
66
-
67
- JOIN item_stock
68
-
69
- ON product.id = item_stock.stock_id
70
-
71
- WHERE status = 1';
72
-
73
- $stmt = $dbh->prepare($sql);
74
-
75
- $stmt->execute();
29
+ product_list ();
76
-
77
- //全て取得するのでfetchALLでレコードを取得する
78
-
79
- $result = $stmt->fetchALL();
80
-
81
- $err_msg[] = ($keyword . 'を含む商品は見つかりませんでした。');
82
-
83
- } catch (PDOException $e) {
84
-
85
- $err_msg[] = '商品を取得できませんでした。';
86
-
87
- }
88
30
 
89
31
  }
90
32
 
@@ -94,11 +36,45 @@
94
36
 
95
37
  }
96
38
 
97
- } else {
39
+ } else {
40
+
41
+ product_list ();
42
+
43
+ }
44
+
45
+ // 関数を定義
46
+
47
+ function partial_match_search () {
48
+
49
+ $sql = 'SELECT product.id, name, price, img, status, stock
50
+
51
+ FROM product
52
+
53
+ JOIN item_stock
54
+
55
+ ON product.id = item_stock.stock_id
56
+
57
+ WHERE name like ?';
58
+
59
+ $stmt = $dbh->prepare($sql);
60
+
61
+ $stmt->bindValue(1, $keyword, PDO::PARAM_STR);
62
+
63
+ $stmt->execute(['%' . $keyword . '%']);
64
+
65
+ $result = $stmt->fetchALL();
66
+
67
+
68
+
69
+ }
70
+
71
+
72
+
73
+ function product_list () {
98
74
 
99
75
  try {
100
76
 
101
- // ステータスが1(公開)の販売商品のみを一覧で表示する
77
+ // 商品を一覧で表示する
102
78
 
103
79
  $sql = 'SELECT product.id, name, price, img, status, stock
104
80
 
@@ -114,17 +90,17 @@
114
90
 
115
91
  $stmt->execute();
116
92
 
117
- //全て取得するのでfetchALLでレコードを取得する
93
+ $result = $stmt->fetchALL();
118
94
 
119
- $result = $stmt->fetchALL();
95
+ $err_msg[] = ($keyword . 'を含む商品は見つかりませんでした。');
120
96
 
121
97
  } catch (PDOException $e) {
122
98
 
123
99
  $err_msg[] = '商品を取得できませんでした。';
124
100
 
125
- }
101
+ }
126
102
 
127
- }
103
+ }
128
104
 
129
105
  ```
130
106
 
@@ -143,3 +119,53 @@
143
119
 
144
120
 
145
121
  ここにより詳細な情報を記載してください。
122
+
123
+ ### 前提・実現したいこと
124
+
125
+
126
+
127
+ ここに質問の内容を詳しく書いてください。
128
+
129
+ (例)PHP(CakePHP)で●●なシステムを作っています。
130
+
131
+ ■■な機能を実装中に以下のエラーメッセージが発生しました。
132
+
133
+
134
+
135
+ ### 発生している問題・エラーメッセージ
136
+
137
+
138
+
139
+ ```
140
+
141
+ エラーメッセージ
142
+
143
+ ```
144
+
145
+
146
+
147
+ ### 該当のソースコード
148
+
149
+
150
+
151
+ ```ここに言語名を入力
152
+
153
+ ソースコード
154
+
155
+ ```
156
+
157
+
158
+
159
+ ### 試したこと
160
+
161
+
162
+
163
+ ここに問題に対して試したことを記載してください。
164
+
165
+
166
+
167
+ ### 補足情報(FW/ツールのバージョンなど)
168
+
169
+
170
+
171
+ ここにより詳細な情報を記載してください。