質問編集履歴

2

文法の修正

2017/07/10 22:19

投稿

newyee
newyee

スコア213

test CHANGED
File without changes
test CHANGED
@@ -182,6 +182,6 @@
182
182
 
183
183
  ```
184
184
 
185
- 以下はエラーの内容す。
185
+ エラーの内容になります。
186
186
 
187
187
  Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php on line 22 Call Stack: 0.0005 236536 1. {main}() /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php:0 0.0010 245792 2. mysqli_fetch_array() /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php:22 Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php on line 26 Call Stack: 0.0005 236536 1. {main}() /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php:0 0.0025 246440 2. mysqli_free_result() /home/ubuntu/workspace/review/lesson16/challenge_mysql_select.php:26

1

文法の修正

2017/07/10 22:19

投稿

newyee
newyee

スコア213

test CHANGED
File without changes
test CHANGED
@@ -18,93 +18,83 @@
18
18
 
19
19
  ![イメージ説明](9c8b209f9fe2008178c52b3676ddce75.png)
20
20
 
21
- この問題の解答が以下のとおなんでが、
21
+ 以下は自分で解いてみたコードにな
22
22
 
23
23
  ```PHP
24
24
 
25
25
  <?php
26
26
 
27
- $emp_data = array();
28
-
29
27
  $job = 'all';
30
28
 
31
29
  if(isset($_POST['job']) === TRUE){
32
30
 
33
- $job = htmlspecialchars($_POST['job'],ENT_QUOTES,'UTF-8');
31
+ $job = $_POST['job'];
34
32
 
35
33
  }
36
34
 
37
- $host = 'localhost';
35
+ $emp_data = array();
38
36
 
39
- $user_name = 'newyee';
37
+ $host = 'localhost'; // データベースのホスト名又はIPアドレス
40
38
 
41
- $passwd = '';
39
+ $username = 'newyee'; // MySQLのユーザ名
42
40
 
43
- $dbname = 'c9';
41
+ $passwd = ''; // MySQLのパスワード
44
42
 
45
- $link = mysqli_connect($host,$user_name,$passwd,$dbname);
43
+ $dbname = 'c9'; // データベース名
46
44
 
47
- if($link !== FALSE){
45
+ $link = mysqli_connect($host, $username, $passwd, $dbname);
48
46
 
49
- //文字化け防止
47
+ if($link){
50
48
 
51
- mysqli_set_charset($link, 'utf8');
49
+ // 文字化け防止
52
50
 
53
-
51
+ mysqli_set_charset($link, 'utf8');
54
52
 
55
- $query = 'SELECT emp_id,emp_name,job,age FROM emp_table ';
53
+ $query = 'SELECT emp_id,emp_name,job,age FROM emp_table';
56
54
 
57
- if($job !== 'all'){
55
+ if($job !== 'all'){
58
56
 
59
- $query .= 'WHERE job = \'' . $job . '\'';
57
+ $query .= 'WHERE job = \'' . $job . '\'';
60
58
 
61
- }
59
+ }
62
60
 
63
-
61
+ // クエリを実行します
64
62
 
65
- //クエリを実行します
63
+ $result = mysqli_query($link, $query);
66
64
 
67
- $result = mysqli_query($link,$query);
65
+ // 1行ずつ結果を配列で取得します
68
66
 
69
-
67
+ while ($row = mysqli_fetch_array($result)) {
70
68
 
71
- if($result !== false){
69
+ $emp_data[] = $row;
72
70
 
73
- //一行ずつ結果を配列で取得
71
+ }
74
72
 
75
- while($row = mysqli_fetch_array($result)) {
73
+ // 結果セットを開放します
76
74
 
77
- $emp_data[] = $row;
75
+ mysqli_free_result($result);
78
76
 
79
- }
77
+ // 接続を閉じます
80
78
 
81
- // 結果セットを開放します
79
+ mysqli_close($link);
82
80
 
83
- mysqli_free_result($result);
81
+ // 接続失敗した場合
84
82
 
85
- }
83
+ }else{
86
84
 
87
-
88
-
89
- // 接続を閉じます
90
-
91
- mysqli_close($link);
92
-
93
-
94
-
95
- // 接続失敗した場合
96
-
97
- } else {
98
-
99
- echo 'DB接続失敗';
85
+ echo 'DB接続失敗';
100
86
 
101
87
  }
102
88
 
103
89
 
104
90
 
105
- ?>
106
91
 
107
92
 
93
+
94
+
95
+
96
+
97
+ ?>
108
98
 
109
99
 
110
100
 
@@ -134,19 +124,19 @@
134
124
 
135
125
  <body>
136
126
 
137
- <p>表示する職種を選択してください</p>
127
+ <p>表示する職種を選択してさい</p>
138
128
 
139
129
  <form method="post">
140
130
 
141
131
  <select name="job">
142
132
 
143
- <option value="all" <?php if($job === 'all'){echo 'selected';}?>>全員</option>
133
+ <option value="all">全員</option>
144
134
 
145
- <option value="manager" <?php if($job === 'manager'){echo 'selected';}?>>マネージャー</option>
135
+ <option value="maneger">マネージャー</option>
146
136
 
147
- <option value="analyst" <?php if($job === 'analyst'){echo 'selected';}?>>アナリスト</option>
137
+ <option value="analyst">アナリスト</option>
148
138
 
149
- <option value="clerk" <?php if($job === 'clerk'){echo 'selected';}?>>一般職</option>
139
+ <option value="clerk">一般職</option>
150
140
 
151
141
  </select>
152
142
 
@@ -168,27 +158,23 @@
168
158
 
169
159
  </tr>
170
160
 
171
-
172
-
173
- <?php foreach($emp_data as $value){ ?>
161
+ <?php foreach($emp_data as $value){ ?>
174
162
 
175
163
  <tr>
176
164
 
177
165
  <td><?php echo htmlspecialchars($value['emp_id'],ENT_QUOTES,'UTF-8');?></td>
178
166
 
179
- <td><?php echo htmlspecialchars($value['emp_name'],ENT_QUOTES,'UTF-8');?> </td>
167
+ <td><?php echo htmlspecialchars($value['emp_name'],ENT_QUOTES,'UTF-8');?></td>
180
168
 
181
169
  <td><?php echo htmlspecialchars($value['job'],ENT_QUOTES,'UTF-8');?></td>
182
170
 
183
171
  <td><?php echo htmlspecialchars($value['age'],ENT_QUOTES,'UTF-8');?></td>
184
172
 
185
- </tr>
173
+ </tr>
186
174
 
187
175
  <?php } ?>
188
176
 
189
-
190
-
191
- </table>
177
+ </table>
192
178
 
193
179
  </body>
194
180