質問編集履歴

3

goji

2018/06/04 13:02

投稿

karasupanda
karasupanda

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1 +1,57 @@
1
+ データベース(DB)のテーブル情報を、PHPの配列に格納する方法を教えてください。
2
+
3
+
4
+
5
+ こんにちは、早速ですが質問に移らせていただきます。
6
+
7
+
8
+
1
- ghhhhhhhhhhhhhhhhhhhhhhhhhhhhf
9
+ DB内のあるテーブルのデータを、PHPの配列に格納したいのです。
10
+
11
+ DBはMySQLを使っています。
12
+
13
+
14
+
15
+ データベース内のテーブルの内容(例)は以下のとおり。
16
+
17
+
18
+
19
+ テーブル名:sample
20
+
21
+
22
+
23
+ | 番 | 時 |
24
+
25
+ | 号 | 間 |
26
+
27
+ ----------
28
+
29
+ | 1 | 朝 |
30
+
31
+ | 2 | 昼 |
32
+
33
+ | 3 | 夜 |
34
+
35
+ ----------
36
+
37
+
38
+
39
+ このテーブルの「時間」列にある内容をひとつずつ格納したいのです。
40
+
41
+
42
+
43
+ 今のところ
44
+
45
+
46
+
47
+ $data = array( '1'=> '朝', '2' => '昼', '3' => '夜' );
48
+
49
+
50
+
51
+ と、直接配列に格納していますが、
52
+
53
+ この場合は「DBから」配列に格納しているわけではなく、PHPに手入力で格納しているわけですが、
54
+
55
+ このままではこのテーブルに新しいデータを加えた場合、PHPの内容も変更しなければなりません。
56
+
57
+ どうにかDBから直接配列に格納したいのです。

2

bb

2018/06/04 13:02

投稿

karasupanda
karasupanda

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,187 +1 @@
1
- 現在作成済みのPHPの4択選択問題があります。以下のように$question1~$question10の変数にarrayで選択肢を代入し、配列にしています。
2
-
3
-
4
-
5
-
6
-
7
- ```PHP
8
-
9
- $question1 = array('きゅうり','みかん','いちご','りんご');
10
-
11
- $answer1 = $question1[0];
12
-
13
- shuffle($question1);
14
-
15
-
16
-
17
-
18
-
19
- $question10 = array・・・
20
-
21
- ```
22
-
23
- また、先頭の値を正解にし、shuffleにて選択肢をランダムに表示します。
24
-
25
- これを別ページに送信し、各問題の正解、不正解を表示させるようにしております。
26
-
27
- foreachはうまく作動させられなかったので未使用
1
+ ghhhhhhhhhhhhhhhhhhhhhhhhhhhhf
28
-
29
- ※問題文、選択肢は例です
30
-
31
- ```HTML
32
-
33
- <table class="type01">
34
-
35
- <tr>
36
-
37
- <th scope="row">問1.</th>
38
-
39
- <td>
40
-
41
- 果物はどれか?
42
-
43
- </td></tr>
44
-
45
- <tr>
46
-
47
- <th scope="row" class="even"></th>
48
-
49
- <td class="even">
50
-
51
- <section><input type="radio" name="rad1" checked id="radio01" value="<?php echo $q1[0]; ?>" />
52
-
53
- <label for="radio01" class="radio"<?php echo $q1[0]; ?></label>
54
-
55
- <input type="radio" name="rad1" checked id="radio02" value="<?php echo $q1[1]; ?>" />
56
-
57
- <label for="radio02" class="radio"><?php echo $q1[1]; ?></label>
58
-
59
- <input type="radio" name="rad1" checked id="radio03" value="<?php echo $q1[2]; ?>" />
60
-
61
- <label for="radio03" class="radio"> <?php echo $q1[2]; ?></label>
62
-
63
- <input type="radio" name="rad1" checked id="radio04" value="<?php echo $q1[3]; ?>" />
64
-
65
- <label for="radio04" class="radio"><?php echo $q1[3]; ?></label>
66
-
67
- <input type="hidden" name="ans1" value="<?php echo $a1 ?>"></section></td></tr>
68
-
69
- <tr>
70
-
71
-
72
-
73
-
74
-
75
- <section><input type="radio" name="rad10" checked id="radio37" value="<?php echo $q10[0]; ?>" />
76
-
77
- <label for="radio37" class="radio"><?php echo $q10[0]; ?></label>
78
-
79
- <input type="radio" name="rad10" checked id="radio38" value="<?php echo $q10[1]; ?>" />
80
-
81
- <label for="radio38" class="radio"><?php echo $q10[1]; ?></label>
82
-
83
- <input type="radio" name="rad10" checked id="radio39" value="<?php echo $q10[2]; ?>" />
84
-
85
- <label for="radio39" class="radio"> <?php echo $q10[2]; ?></label>
86
-
87
- <input type="radio" name="rad10" checked id="radio40" value="<?php echo $q10[3]; ?>" />
88
-
89
- <label for="radio40" class="radio"><?php echo $q10[3]; ?></label>
90
-
91
- <input type="hidden" name="ans10" value="<?php echo $a10 ?>"></section></td></tr>
92
-
93
- </table>
94
-
95
- <table class="type03">
96
-
97
- <tr>
98
-
99
- <th scope="row"><input id="submit_button" type="submit" value="解答"/></th>
100
-
101
- ```
102
-
103
- 現在これをデーターベースから参照するようにしたいと考えております。
104
-
105
- 理由としてはPHPに直接選択肢を書くのが面倒で管理しずらい(問題数が非常に多い)からです。
106
-
107
- つまり選択肢と問題文をPHPやHTMLに直接書かずにDBから取得したいのです。
108
-
109
- たとえば、DB上の選択肢「きゅうり みかん いちご りんご」を$question1に配列で代入し、
110
-
111
- つぎにDB上の選択肢「りんご レタス きゅうり なす」を$question2に代入させます。
112
-
113
- これを$question10まで同じように処理させて10問分作成したいと思っています。
114
-
115
-
116
-
117
- そのため、、phpMyAdminにてsampleテーブルを作成し、カラムを問題文、選択肢1~4、解答の6つ作成しました。
118
-
119
-
120
-
121
- ```
122
-
123
- ―――――――――――――――――――――――――――――――――――
124
-
125
- |問題文     |選択肢1 |選択肢2 |選択肢3 |選択肢4 |解答  |
126
-
127
- |野菜はどれか? |きゅうり | みかん | いちご | りんご |きゅうり|
128
-
129
- |果物はどれか? |りんご  | レタス |きゅうり | なす  |りんご |
130
-
131
- |・       |     |     |     |     |    |
132
-
133
- |・       |     |     |     |     |    |
134
-
135
- |・       |     |     |     |     |    |
136
-
137
- ―――――――――――――――――――――――――――――――――――
138
-
139
- ```
140
-
141
-
142
-
143
- 次にこのデーターベース上の問題文のカラムを表示させるには
144
-
145
- ```SQL
146
-
147
- <?php
148
-
149
- $dsn = 'mysql:dbname=***;host=***';
150
-
151
- $user = '***';
152
-
153
- $password = '***';
154
-
155
- try{
156
-
157
- $dbh = new PDO($dsn, $user, $password);
158
-
159
- $dbh->query("SET NAMES utf8;");
160
-
161
- }catch (PDOException $e){
162
-
163
- print('Error:'.$e->getMessage());
164
-
165
- die();
166
-
167
-
168
-
169
- $sql = 'select * from sample';
170
-
171
- foreach ($dbh->query($sql) as $row) {
172
-
173
- echo($row['問題文'].'<br>');
174
-
175
- }
176
-
177
- ?>
178
-
179
- ```
180
-
181
- とすればよいことがわかり、SELECT文にWHERE句などを用いる方法もわかりました。
182
-
183
- しかし、選択肢1~4のカラムについては、ただ表示させるだけでなく、変数$question1~$question10に
184
-
185
- 代入させ、PHPの4択問題として機能させなければなりません。ここの記述については、調べてもなかなか
186
-
187
- 理解ができず苦戦しております。どのようなコードを入力すればよいのか、ご回答お願い致します。

1

文法の修正

2018/06/04 10:37

投稿

karasupanda
karasupanda

スコア8

test CHANGED
File without changes
test CHANGED
@@ -100,9 +100,21 @@
100
100
 
101
101
  ```
102
102
 
103
- 今度はこれをデーターベースから参照するようにしたいと考え、phpMyAdminにsampleテーブルを作成し、カラムを
103
+ 現在これをデーターベースから参照するようにしたいと考えております。
104
104
 
105
+ 理由としてはPHPに直接選択肢を書くのが面倒で管理しずらい(問題数が非常に多い)からです。
106
+
107
+ つまり選択肢と問題文をPHPやHTMLに直接書かずにDBから取得したいのです。
108
+
109
+ たとえば、DB上の選択肢「きゅうり みかん いちご りんご」を$question1に配列で代入し、
110
+
111
+ つぎにDB上の選択肢「りんご レタス きゅうり なす」を$question2に代入させます。
112
+
113
+ これを$question10まで同じように処理させて10問分作成したいと思っています。
114
+
115
+
116
+
105
- 問題文、選択肢1~4、解答の6つ作成しました。
117
+ そのため、、phpMyAdminにてsampleテーブルを作成し、カラムを問題文、選択肢1~4、解答の6つ作成しました。
106
118
 
107
119
 
108
120
 
@@ -113,6 +125,10 @@
113
125
  |問題文     |選択肢1 |選択肢2 |選択肢3 |選択肢4 |解答  |
114
126
 
115
127
  |野菜はどれか? |きゅうり | みかん | いちご | りんご |きゅうり|
128
+
129
+ |果物はどれか? |りんご  | レタス |きゅうり | なす  |りんご |
130
+
131
+ |・       |     |     |     |     |    |
116
132
 
117
133
  |・       |     |     |     |     |    |
118
134