回答編集履歴

2

追記

2016/08/23 07:46

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -139,3 +139,101 @@
139
139
  <?php endif; ?>
140
140
 
141
141
  ```
142
+
143
+
144
+
145
+ ----
146
+
147
+
148
+
149
+ 追記: 指定した1つのカラムにおける一意な値のみを1次元配列で選択するサンプル
150
+
151
+
152
+
153
+ ```html
154
+
155
+ <?php
156
+
157
+
158
+
159
+ $db_host = 'ホスト名';
160
+
161
+ $db_name = 'データベース名';
162
+
163
+ $db_user = 'ユーザー';
164
+
165
+ $db_pass = 'パス';
166
+
167
+
168
+
169
+ try {
170
+
171
+
172
+
173
+ // new PDO() の部分以外でもPDOExceptionが異常時に飛ぶように設定しながら接続
174
+
175
+ $pdo = new PDO("mysql:dbname=$db_name;host=$db_host;charset=utf8", $db_user, $db_pass, [
176
+
177
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
178
+
179
+ ]);
180
+
181
+
182
+
183
+ // 一気に全行1次元配列として取得
184
+
185
+ $values = $pdo->query("SELECT DISTINCT カラム名 FROM テーブル名")->fetchAll(PDO::FETCH_COLUMN);
186
+
187
+
188
+
189
+ } catch (PDOException $e) {
190
+
191
+
192
+
193
+ // 「500 Internal Server Error」にして,HTMLではなくテキストでエラーメッセージを表示して終了
194
+
195
+ header('Content-Type: text/plain; charset=UTF-8', true, 500);
196
+
197
+ exit($e->getMessge());
198
+
199
+
200
+
201
+ }
202
+
203
+
204
+
205
+ // テキストデータをHTML内に埋め込む際には必ずこの関数を通さなければならない
206
+
207
+ function h($str)
208
+
209
+ {
210
+
211
+ return htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
212
+
213
+ }
214
+
215
+
216
+
217
+ ?>
218
+
219
+ <!DOCTYPE html>
220
+
221
+ <meta charset="UTF-8">
222
+
223
+ <title>Example</title>
224
+
225
+ <h1>データ一覧</h1>
226
+
227
+ <ul>
228
+
229
+ <?php foreach ($values as $value): ?>
230
+
231
+ <li><?=h($value)?></li>
232
+
233
+ <?php endforeach; ?>
234
+
235
+ </ul>
236
+
237
+ ```
238
+
239
+

1

html

2016/08/23 07:46

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
 
30
30
 
31
- ```php
31
+ ```html
32
32
 
33
33
  <?php
34
34