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

質問編集履歴

2

文法の修正

2017/07/10 22:19

投稿

newyee
newyee

スコア213

title CHANGED
File without changes
body CHANGED
@@ -90,5 +90,5 @@
90
90
  </body>
91
91
  </html>
92
92
  ```
93
- 以下はエラーの内容す。
93
+ エラーの内容になります。
94
94
  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

title CHANGED
File without changes
body CHANGED
@@ -8,52 +8,47 @@
8
8
 
9
9
  以下はemp_tableの画像です。
10
10
  ![イメージ説明](9c8b209f9fe2008178c52b3676ddce75.png)
11
- この問題の解答が以下のとおりなんですが、
11
+ 以下は自分解いてみたコードになりま
12
12
  ```PHP
13
13
  <?php
14
- $emp_data = array();
15
14
  $job = 'all';
16
15
  if(isset($_POST['job']) === TRUE){
17
- $job = htmlspecialchars($_POST['job'],ENT_QUOTES,'UTF-8');
16
+ $job = $_POST['job'];
18
17
  }
18
+ $emp_data = array();
19
- $host = 'localhost';
19
+ $host = 'localhost'; // データベースのホスト名又はIPアドレス
20
- $user_name = 'newyee';
20
+ $username = 'newyee'; // MySQLのユーザ名
21
- $passwd = '';
21
+ $passwd = ''; // MySQLのパスワード
22
- $dbname = 'c9';
22
+ $dbname = 'c9'; // データベース名
23
- $link = mysqli_connect($host,$user_name,$passwd,$dbname);
23
+ $link = mysqli_connect($host, $username, $passwd, $dbname);
24
- if($link !== FALSE){
24
+ if($link){
25
- //文字化け防止
25
+ // 文字化け防止
26
- mysqli_set_charset($link, 'utf8');
26
+ mysqli_set_charset($link, 'utf8');
27
-
28
- $query = 'SELECT emp_id,emp_name,job,age FROM emp_table ';
27
+ $query = 'SELECT emp_id,emp_name,job,age FROM emp_table';
29
- if($job !== 'all'){
28
+ if($job !== 'all'){
30
- $query .= 'WHERE job = \'' . $job . '\'';
29
+ $query .= 'WHERE job = \'' . $job . '\'';
31
- }
30
+ }
32
-
33
- //クエリを実行します
31
+ // クエリを実行します
34
- $result = mysqli_query($link,$query);
32
+ $result = mysqli_query($link, $query);
35
-
36
- if($result !== false){
37
- //行ずつ結果を配列で取得
33
+ // 1行ずつ結果を配列で取得します
38
- while($row = mysqli_fetch_array($result)) {
34
+ while ($row = mysqli_fetch_array($result)) {
39
- $emp_data[] = $row;
35
+ $emp_data[] = $row;
40
- }
36
+ }
41
- // 結果セットを開放します
37
+ // 結果セットを開放します
42
- mysqli_free_result($result);
38
+ mysqli_free_result($result);
43
- }
44
-
45
- // 接続を閉じます
39
+ // 接続を閉じます
46
- mysqli_close($link);
40
+ mysqli_close($link);
47
-
48
- // 接続失敗した場合
41
+ // 接続失敗した場合
49
- } else {
42
+ }else{
50
- echo 'DB接続失敗';
43
+ echo 'DB接続失敗';
51
44
  }
52
45
 
46
+
47
+
48
+
53
49
  ?>
54
50
 
55
51
 
56
-
57
52
  <!DOCTYPE html>
58
53
  <html lang="ja">
59
54
  <head>
@@ -66,13 +61,13 @@
66
61
  </style>
67
62
  </head>
68
63
  <body>
69
- <p>表示する職種を選択してください</p>
64
+ <p>表示する職種を選択してさい</p>
70
65
  <form method="post">
71
66
  <select name="job">
72
- <option value="all" <?php if($job === 'all'){echo 'selected';}?>>全員</option>
67
+ <option value="all">全員</option>
73
- <option value="manager" <?php if($job === 'manager'){echo 'selected';}?>>マネージャー</option>
68
+ <option value="maneger">マネージャー</option>
74
- <option value="analyst" <?php if($job === 'analyst'){echo 'selected';}?>>アナリスト</option>
69
+ <option value="analyst">アナリスト</option>
75
- <option value="clerk" <?php if($job === 'clerk'){echo 'selected';}?>>一般職</option>
70
+ <option value="clerk">一般職</option>
76
71
  </select>
77
72
  <input type="submit" value="表示">
78
73
  </form>
@@ -83,17 +78,15 @@
83
78
  <th>職種</th>
84
79
  <th>年齢</th>
85
80
  </tr>
86
-
87
- <?php foreach($emp_data as $value){ ?>
81
+ <?php foreach($emp_data as $value){ ?>
88
82
  <tr>
89
83
  <td><?php echo htmlspecialchars($value['emp_id'],ENT_QUOTES,'UTF-8');?></td>
90
- <td><?php echo htmlspecialchars($value['emp_name'],ENT_QUOTES,'UTF-8');?> </td>
84
+ <td><?php echo htmlspecialchars($value['emp_name'],ENT_QUOTES,'UTF-8');?></td>
91
85
  <td><?php echo htmlspecialchars($value['job'],ENT_QUOTES,'UTF-8');?></td>
92
86
  <td><?php echo htmlspecialchars($value['age'],ENT_QUOTES,'UTF-8');?></td>
93
- </tr>
87
+ </tr>
94
88
  <?php } ?>
95
-
96
- </table>
89
+ </table>
97
90
  </body>
98
91
  </html>
99
92
  ```