質問編集履歴
6
脱字を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -49,7 +49,7 @@
|
|
49
49
|
|
50
50
|
</html>
|
51
51
|
↓
|
52
|
-
↓変更後
|
52
|
+
↓変更後//////////////////////////////////////////////////////////////////////////
|
53
53
|
<!DOCTYPE html>
|
54
54
|
<html>
|
55
55
|
<head>
|
@@ -88,8 +88,22 @@
|
|
88
88
|
$ans_array = array($row['choice_1'],$row['choice_2'],$row['choice_3'],$row['answer']);{
|
89
89
|
}
|
90
90
|
shuffle($ans_array);
|
91
|
+
|
92
|
+
//////////////////////////////////////////////////////////////////////////////////////////////Score
|
93
|
+
$total = array();
|
94
|
+
foreach($answer as $key => $value):
|
95
|
+
echo "question".$key."<br>";
|
96
|
+
echo "answer".$value."<be>";
|
97
|
+
echo (is_null($_POST["answer"][$key]) ? "Unanswered" : "Answer <b>" . $_POST["answer"][$key]) . "</b><br><br>";
|
98
|
+
if(!array_key_exists($value,$total)): $total[$value] = ""; endif;
|
99
|
+
$total[$value] += $_POST["answer"][$key];
|
91
|
-
|
100
|
+
endforeach;
|
92
101
|
|
102
|
+
foreach($total as $cat => $score):
|
103
|
+
echo "<b>Answer:</b> " . $cat . " <b>Total Score:</b> " . $score . "<br>";
|
104
|
+
endforeach;
|
105
|
+
?>
|
106
|
+
|
93
107
|
<h4> <?php echo $number . ".) " . $question; ?></h4>
|
94
108
|
<label><input type="radio" value="<?php echo $ans_array[0]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[0]; ?></label>
|
95
109
|
<label><input type="radio" value="<?php echo $ans_array[1]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[1]; ?></label>
|
@@ -99,6 +113,7 @@
|
|
99
113
|
}
|
100
114
|
?>
|
101
115
|
|
116
|
+
|
102
117
|
<form action="ex5-1.php" method="POST">
|
103
118
|
<input type="submit" value="Submit" name="submit">
|
104
119
|
</form>
|
5
問題の配列までは上手くいきました。あとは得点の表示なのですが、どなたか得点数の表示でアドバイス頂けないでしょうか?
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,5 +48,65 @@
|
|
48
48
|
</body>
|
49
49
|
|
50
50
|
</html>
|
51
|
+
↓
|
52
|
+
↓変更後
|
53
|
+
<!DOCTYPE html>
|
54
|
+
<html>
|
55
|
+
<head>
|
56
|
+
<title>Sample Quiz</title>
|
57
|
+
</head>
|
58
|
+
<body>
|
59
|
+
|
60
|
+
<?php
|
61
|
+
$dsn='mysql:host=localhost;dbname=quiz';
|
62
|
+
$user='root';
|
63
|
+
$password='root';
|
64
|
+
|
65
|
+
try{
|
66
|
+
$db=new PDO($dsn,$user,$password);
|
67
|
+
$db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
|
68
|
+
$sql="SELECT * FROM quiz ORDER BY RAND()";
|
69
|
+
$stmt=$db->query($sql);
|
70
|
+
$stmt->execute();
|
71
|
+
}catch(PDOException $error){
|
72
|
+
echo "error".$error->getMessage();
|
73
|
+
}
|
74
|
+
/////////////////////////////////////////////////////////////////////////////
|
75
|
+
$id='id';
|
76
|
+
$question='question';
|
77
|
+
$choice_1='choice_1';
|
78
|
+
$choice_2='choice_2';
|
79
|
+
$choice_3='choice_3';
|
80
|
+
$number = 0;
|
81
|
+
$answer = 'answer';
|
82
|
+
|
83
|
+
$number = 0;
|
84
|
+
for($i=0; $row = $stmt->fetch(); $i++){
|
85
|
+
$number++;
|
86
|
+
$id = $row['id'];
|
87
|
+
$question = $row['question'];
|
88
|
+
$ans_array = array($row['choice_1'],$row['choice_2'],$row['choice_3'],$row['answer']);{
|
89
|
+
}
|
90
|
+
shuffle($ans_array);
|
91
|
+
?>
|
92
|
+
|
93
|
+
<h4> <?php echo $number . ".) " . $question; ?></h4>
|
94
|
+
<label><input type="radio" value="<?php echo $ans_array[0]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[0]; ?></label>
|
95
|
+
<label><input type="radio" value="<?php echo $ans_array[1]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[1]; ?></label>
|
96
|
+
<label><input type="radio" value="<?php echo $ans_array[2]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[2]; ?></label>
|
97
|
+
|
98
|
+
<?php
|
99
|
+
}
|
100
|
+
?>
|
101
|
+
|
102
|
+
<form action="ex5-1.php" method="POST">
|
103
|
+
<input type="submit" value="Submit" name="submit">
|
104
|
+
</form>
|
105
|
+
|
106
|
+
<p>Total Score</p>
|
107
|
+
|
108
|
+
|
109
|
+
</body>
|
110
|
+
</html>
|
51
111
|
|
52
112
|
```
|
4
問題内容を変更いたしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
知識不足の初心者の質問になりますが、よろしくお願いします。
|
2
|
-
データベースに格納されている問題10件をランダムに表示させ、最後にその
|
2
|
+
データベースに格納されている問題10件をランダムに表示させ、最後にその正答数を表示させる
|
3
3
|
という問題になります。
|
4
4
|
調べ方も悪いのかどうしても出来上がりません。そこで皆様のお力をお借りしたいです。
|
5
5
|
私の配列ではただ質問が10個羅列されるのみで、選択肢などが出ない状態です。
|
6
6
|
また、問題の下にradioボタン形式のように選択肢を表示したいのですが、
|
7
7
|
そのひも付けと表示がうまくいきません。
|
8
|
+
<イメージ図>
|
9
|
+
Q1.Which launguage is most commonly used in Japan ?
|
10
|
+
○選択肢1 ○選択肢2 ○選択肢3
|
8
11
|
|
9
12
|
<テーブル:Quiz>
|
10
13
|
<カラム:quiz_No question choice_1 choice_2 choice_3 answer >
|
3
編集しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -12,17 +12,6 @@
|
|
12
12
|
```ここに言語を入力
|
13
13
|
コード
|
14
14
|
<!DOCTYPE html>
|
15
|
-
<html>
|
16
|
-
<head lang="ja">
|
17
|
-
<meta charset="UTF-8">
|
18
|
-
<title>Quiz</title>
|
19
|
-
</head>
|
20
|
-
<body>
|
21
|
-
</body>
|
22
|
-
|
23
|
-
</html>
|
24
|
-
|
25
|
-
|
26
15
|
<?php
|
27
16
|
$dsn = 'mysql:host=localhost;dbname=ex.sql';
|
28
17
|
$user = 'root';
|
@@ -32,16 +21,29 @@
|
|
32
21
|
try{
|
33
22
|
$db = new PDO($dsn,$user,$password);
|
34
23
|
$db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
|
35
|
-
$sql = "SELECT * FROM
|
24
|
+
$sql = "SELECT * FROM quiz ORDER BY RAND()";
|
36
25
|
$stmt = $db->query($sql);
|
37
26
|
$stmt->execute();
|
38
27
|
}catch(PDOException $error) {
|
39
28
|
echo "error".$error->getMessage();
|
40
29
|
}
|
41
30
|
foreach ($stmt as $row) {
|
42
|
-
echo $row['
|
31
|
+
echo $row['id'].':'.$row['question'].':'.'<br><br>'.$row['choice_1'].':'.$row['choice_2'].':'.$row['choice_3'];
|
43
32
|
echo '<br>';
|
44
33
|
}
|
45
|
-
|
34
|
+
?>
|
35
|
+
|
36
|
+
<html>
|
37
|
+
<head lang="ja">
|
38
|
+
<meta charset="UTF-8">
|
39
|
+
<title>Quiz</title>
|
40
|
+
</head>
|
41
|
+
<body>
|
42
|
+
<input type="radio" name="choice_1[{$row ["id"]}]" value="1">{$row["choice_1"]}<br>
|
43
|
+
<input type="radio" name="choice_2[{$row ["id"]}]" value="2">{$row["choice_2"]}<br>
|
44
|
+
<input type="radio" name="choice_3[{$row ["id"]}]" value="3">{$row["choice_3"]}<br>
|
45
|
+
</body>
|
46
|
+
|
47
|
+
</html>
|
46
48
|
|
47
49
|
```
|
2
質問文を変更しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
知識不足の初心者の質問になりますが、よろしくお願いします。
|
2
2
|
データベースに格納されている問題10件をランダムに表示させ、最後にその回答数を表示させる
|
3
3
|
という問題になります。
|
4
|
-
|
4
|
+
調べ方も悪いのかどうしても出来上がりません。そこで皆様のお力をお借りしたいです。
|
5
5
|
私の配列ではただ質問が10個羅列されるのみで、選択肢などが出ない状態です。
|
6
|
+
また、問題の下にradioボタン形式のように選択肢を表示したいのですが、
|
7
|
+
そのひも付けと表示がうまくいきません。
|
6
8
|
|
7
9
|
<テーブル:Quiz>
|
8
10
|
<カラム:quiz_No question choice_1 choice_2 choice_3 answer >
|
1
rand関数を再度追加しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,8 +15,13 @@
|
|
15
15
|
<meta charset="UTF-8">
|
16
16
|
<title>Quiz</title>
|
17
17
|
</head>
|
18
|
+
<body>
|
19
|
+
</body>
|
18
20
|
|
21
|
+
</html>
|
22
|
+
|
23
|
+
|
19
|
-
|
24
|
+
<?php
|
20
25
|
$dsn = 'mysql:host=localhost;dbname=ex.sql';
|
21
26
|
$user = 'root';
|
22
27
|
$password = 'root';
|
@@ -25,7 +30,7 @@
|
|
25
30
|
try{
|
26
31
|
$db = new PDO($dsn,$user,$password);
|
27
32
|
$db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
|
28
|
-
$sql = "SELECT * FROM Quiz";
|
33
|
+
$sql = "SELECT * FROM Quiz ORDER BY RAND()";
|
29
34
|
$stmt = $db->query($sql);
|
30
35
|
$stmt->execute();
|
31
36
|
}catch(PDOException $error) {
|
@@ -36,9 +41,5 @@
|
|
36
41
|
echo '<br>';
|
37
42
|
}
|
38
43
|
?>
|
39
|
-
|
40
|
-
|
44
|
+
|
41
|
-
</body>
|
42
|
-
|
43
|
-
</html>
|
44
45
|
```
|