質問編集履歴

6

脱字を修正しました。

2019/05/09 07:57

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -100,7 +100,7 @@
100
100
 
101
101
 
102
102
 
103
- ↓変更後
103
+ ↓変更後//////////////////////////////////////////////////////////////////////////
104
104
 
105
105
  <!DOCTYPE html>
106
106
 
@@ -178,7 +178,35 @@
178
178
 
179
179
  shuffle($ans_array);
180
180
 
181
+
182
+
183
+ //////////////////////////////////////////////////////////////////////////////////////////////Score
184
+
185
+ $total = array();
186
+
187
+ foreach($answer as $key => $value):
188
+
189
+ echo "question".$key."<br>";
190
+
191
+ echo "answer".$value."<be>";
192
+
193
+ echo (is_null($_POST["answer"][$key]) ? "Unanswered" : "Answer <b>" . $_POST["answer"][$key]) . "</b><br><br>";
194
+
195
+ if(!array_key_exists($value,$total)): $total[$value] = ""; endif;
196
+
197
+ $total[$value] += $_POST["answer"][$key];
198
+
199
+ endforeach;
200
+
201
+
202
+
203
+ foreach($total as $cat => $score):
204
+
205
+ echo "<b>Answer:</b> " . $cat . " <b>Total Score:</b> " . $score . "<br>";
206
+
207
+ endforeach;
208
+
181
- ?>
209
+ ?>
182
210
 
183
211
 
184
212
 
@@ -200,6 +228,8 @@
200
228
 
201
229
 
202
230
 
231
+
232
+
203
233
  <form action="ex5-1.php" method="POST">
204
234
 
205
235
  <input type="submit" value="Submit" name="submit">

5

問題の配列までは上手くいきました。あとは得点の表示なのですが、どなたか得点数の表示でアドバイス頂けないでしょうか?

2019/05/09 07:56

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -98,6 +98,126 @@
98
98
 
99
99
  </html>
100
100
 
101
+
102
+
103
+ ↓変更後
104
+
105
+ <!DOCTYPE html>
106
+
107
+ <html>
108
+
109
+ <head>
110
+
111
+ <title>Sample Quiz</title>
112
+
113
+ </head>
114
+
115
+ <body>
116
+
117
+
118
+
119
+ <?php
120
+
121
+ $dsn='mysql:host=localhost;dbname=quiz';
122
+
123
+ $user='root';
124
+
125
+ $password='root';
126
+
127
+
128
+
129
+ try{
130
+
131
+ $db=new PDO($dsn,$user,$password);
132
+
133
+ $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
134
+
135
+ $sql="SELECT * FROM quiz ORDER BY RAND()";
136
+
137
+ $stmt=$db->query($sql);
138
+
139
+ $stmt->execute();
140
+
141
+ }catch(PDOException $error){
142
+
143
+ echo "error".$error->getMessage();
144
+
145
+ }
146
+
147
+ /////////////////////////////////////////////////////////////////////////////
148
+
149
+ $id='id';
150
+
151
+ $question='question';
152
+
153
+ $choice_1='choice_1';
154
+
155
+ $choice_2='choice_2';
156
+
157
+ $choice_3='choice_3';
158
+
159
+ $number = 0;
160
+
161
+ $answer = 'answer';
162
+
163
+
164
+
165
+ $number = 0;
166
+
167
+ for($i=0; $row = $stmt->fetch(); $i++){
168
+
169
+ $number++;
170
+
171
+ $id = $row['id'];
172
+
173
+ $question = $row['question'];
174
+
175
+ $ans_array = array($row['choice_1'],$row['choice_2'],$row['choice_3'],$row['answer']);{
176
+
177
+ }
178
+
179
+ shuffle($ans_array);
180
+
181
+ ?>
182
+
183
+
184
+
185
+ <h4> <?php echo $number . ".) " . $question; ?></h4>
186
+
187
+ <label><input type="radio" value="<?php echo $ans_array[0]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[0]; ?></label>
188
+
189
+ <label><input type="radio" value="<?php echo $ans_array[1]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[1]; ?></label>
190
+
191
+ <label><input type="radio" value="<?php echo $ans_array[2]; ?>" name="<?php echo $question; ?>"> <?php echo $ans_array[2]; ?></label>
192
+
193
+
194
+
195
+ <?php
196
+
197
+ }
198
+
199
+ ?>
200
+
201
+
202
+
203
+ <form action="ex5-1.php" method="POST">
204
+
205
+ <input type="submit" value="Submit" name="submit">
206
+
207
+ </form>
208
+
209
+
210
+
211
+ <p>Total Score</p>
212
+
213
+
214
+
215
+
216
+
217
+ </body>
218
+
219
+ </html>
220
+
101
221
 
102
222
 
103
223
  ```

4

問題内容を変更いたしました。

2019/05/09 07:36

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  知識不足の初心者の質問になりますが、よろしくお願いします。
2
2
 
3
- データベースに格納されている問題10件をランダムに表示させ、最後にその答数を表示させる
3
+ データベースに格納されている問題10件をランダムに表示させ、最後にその答数を表示させる
4
4
 
5
5
  という問題になります。
6
6
 
@@ -11,6 +11,12 @@
11
11
  また、問題の下にradioボタン形式のように選択肢を表示したいのですが、
12
12
 
13
13
  そのひも付けと表示がうまくいきません。
14
+
15
+ <イメージ図>
16
+
17
+ Q1.Which launguage is most commonly used in Japan ?
18
+
19
+ ○選択肢1 ○選択肢2 ○選択肢3
14
20
 
15
21
 
16
22
 

3

編集しました。

2019/05/09 01:49

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -26,28 +26,6 @@
26
26
 
27
27
  <!DOCTYPE html>
28
28
 
29
- <html>
30
-
31
- <head lang="ja">
32
-
33
- <meta charset="UTF-8">
34
-
35
- <title>Quiz</title>
36
-
37
- </head>
38
-
39
- <body>
40
-
41
- </body>
42
-
43
-
44
-
45
- </html>
46
-
47
-
48
-
49
-
50
-
51
29
  <?php
52
30
 
53
31
  $dsn = 'mysql:host=localhost;dbname=ex.sql';
@@ -66,7 +44,7 @@
66
44
 
67
45
  $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
68
46
 
69
- $sql = "SELECT * FROM Quiz ORDER BY RAND()";
47
+ $sql = "SELECT * FROM quiz ORDER BY RAND()";
70
48
 
71
49
  $stmt = $db->query($sql);
72
50
 
@@ -80,13 +58,39 @@
80
58
 
81
59
  foreach ($stmt as $row) {
82
60
 
83
- echo $row['quiz_No'].':'.$row['question'];
61
+ echo $row['id'].':'.$row['question'].':'.'<br><br>'.$row['choice_1'].':'.$row['choice_2'].':'.$row['choice_3'];
84
62
 
85
63
  echo '<br>';
86
64
 
87
65
  }
88
66
 
89
- ?>
67
+ ?>
68
+
69
+
70
+
71
+ <html>
72
+
73
+ <head lang="ja">
74
+
75
+ <meta charset="UTF-8">
76
+
77
+ <title>Quiz</title>
78
+
79
+ </head>
80
+
81
+ <body>
82
+
83
+ <input type="radio" name="choice_1[{$row ["id"]}]" value="1">{$row["choice_1"]}<br>
84
+
85
+ <input type="radio" name="choice_2[{$row ["id"]}]" value="2">{$row["choice_2"]}<br>
86
+
87
+ <input type="radio" name="choice_3[{$row ["id"]}]" value="3">{$row["choice_3"]}<br>
88
+
89
+ </body>
90
+
91
+
92
+
93
+ </html>
90
94
 
91
95
 
92
96
 

2

質問文を変更しました。

2019/05/08 15:30

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,13 @@
4
4
 
5
5
  という問題になります。
6
6
 
7
- 未経験でエンジニア会社に入り、昨晩から徹夜で挑戦はしているものの、調べ方も悪いのかどうしても出来上がりません。そこで皆様のお力をお借りしたいです。
7
+ 調べ方も悪いのかどうしても出来上がりません。そこで皆様のお力をお借りしたいです。
8
8
 
9
9
  私の配列ではただ質問が10個羅列されるのみで、選択肢などが出ない状態です。
10
+
11
+ また、問題の下にradioボタン形式のように選択肢を表示したいのですが、
12
+
13
+ そのひも付けと表示がうまくいきません。
10
14
 
11
15
 
12
16
 

1

rand関数を再度追加しました。

2019/05/08 13:42

投稿

amaturePy
amaturePy

スコア131

test CHANGED
File without changes
test CHANGED
@@ -32,9 +32,19 @@
32
32
 
33
33
  </head>
34
34
 
35
+ <body>
36
+
37
+ </body>
38
+
35
39
 
36
40
 
41
+ </html>
42
+
43
+
44
+
45
+
46
+
37
- <?php
47
+ <?php
38
48
 
39
49
  $dsn = 'mysql:host=localhost;dbname=ex.sql';
40
50
 
@@ -52,7 +62,7 @@
52
62
 
53
63
  $db ->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);
54
64
 
55
- $sql = "SELECT * FROM Quiz";
65
+ $sql = "SELECT * FROM Quiz ORDER BY RAND()";
56
66
 
57
67
  $stmt = $db->query($sql);
58
68
 
@@ -74,14 +84,6 @@
74
84
 
75
85
  ?>
76
86
 
77
-
78
-
79
- <body>
87
+
80
-
81
- </body>
82
-
83
-
84
-
85
- </html>
86
88
 
87
89
  ```