質問編集履歴
2
文法の修正
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
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,52 +8,47 @@
|
|
8
8
|
|
9
9
|
以下はemp_tableの画像です。
|
10
10
|

|
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 =
|
16
|
+
$job = $_POST['job'];
|
18
17
|
}
|
18
|
+
$emp_data = array();
|
19
|
-
$host = 'localhost';
|
19
|
+
$host = 'localhost'; // データベースのホスト名又はIPアドレス
|
20
|
-
$
|
20
|
+
$username = 'newyee'; // MySQLのユーザ名
|
21
|
-
$passwd
|
21
|
+
$passwd = ''; // MySQLのパスワード
|
22
|
-
$dbname
|
22
|
+
$dbname = 'c9'; // データベース名
|
23
|
-
$link = mysqli_connect($host,$
|
23
|
+
$link = mysqli_connect($host, $username, $passwd, $dbname);
|
24
|
-
if($link
|
24
|
+
if($link){
|
25
|
-
//文字化け防止
|
25
|
+
// 文字化け防止
|
26
|
-
|
26
|
+
mysqli_set_charset($link, 'utf8');
|
27
|
-
|
28
|
-
|
27
|
+
$query = 'SELECT emp_id,emp_name,job,age FROM emp_table';
|
29
|
-
|
28
|
+
if($job !== 'all'){
|
30
|
-
|
29
|
+
$query .= 'WHERE job = \'' . $job . '\'';
|
31
|
-
|
30
|
+
}
|
32
|
-
|
33
|
-
|
31
|
+
// クエリを実行します
|
34
|
-
|
32
|
+
$result = mysqli_query($link, $query);
|
35
|
-
|
36
|
-
if($result !== false){
|
37
|
-
|
33
|
+
// 1行ずつ結果を配列で取得します
|
38
|
-
|
34
|
+
while ($row = mysqli_fetch_array($result)) {
|
39
|
-
|
35
|
+
$emp_data[] = $row;
|
40
|
-
|
36
|
+
}
|
41
|
-
|
37
|
+
// 結果セットを開放します
|
42
|
-
|
38
|
+
mysqli_free_result($result);
|
43
|
-
}
|
44
|
-
|
45
|
-
|
39
|
+
// 接続を閉じます
|
46
|
-
|
40
|
+
mysqli_close($link);
|
47
|
-
|
48
|
-
// 接続失敗した場合
|
41
|
+
// 接続失敗した場合
|
49
|
-
}
|
42
|
+
}else{
|
50
|
-
|
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>表示する職種を選択して
|
64
|
+
<p>表示する職種を選択して下さい。</p>
|
70
65
|
<form method="post">
|
71
66
|
<select name="job">
|
72
|
-
<option value="all"
|
67
|
+
<option value="all">全員</option>
|
73
|
-
<option value="
|
68
|
+
<option value="maneger">マネージャー</option>
|
74
|
-
<option value="analyst"
|
69
|
+
<option value="analyst">アナリスト</option>
|
75
|
-
<option value="clerk"
|
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
|
-
|
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');?>
|
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
|
```
|