dポイントプレゼントキャンペーン実施中!

MySQL のデータからドロップダウンリストを作りたいのですが、以下のように値が重複してしまいます。
<select name="key_03" id="category_name">
<option value="A">あ</option>
<option value="A">あ</option>
<option value="A">あ</option>
<option value="">すべて</option>
</select>

以下のようになればと。
<select name="key_03" id="category_name">
<option value="A">あ</option>
<option value="">すべて</option>
</select>

PHP で重複しないように処理をしているつもりなのですが上手く行きません。
わかる方おりましたらご教授下さい。
宜しくお願い致します。
( ちなみに hsc() は htmlspecialchars() です。)


try {

$pdo = new PDO(DSN, USERNAME, PASSWORD);

// SQL 文を準備
$sql = 'SELECT * FROM movie';
$prepare = $pdo->prepare($sql);
$db_result = $prepare->execute();

// データベースへの送信結果 TRUE なら以下の処理を実行する
if ( $db_result ) {

$rows = $prepare->fetchAll(PDO::FETCH_ASSOC);

echo '<label for="category_name">カテゴリ</label>';
echo '<select name="key_03" id="category_name">';

$before_category_name;
foreach ($rows as $row) {

if ($before_category_name !== $row['category_name']) {
echo '<option value="' . hsc($row['category_name']) . '">' . hsc($row['category_name']) . '</option>';
}

}

echo '<option value="">すべて</option>';
echo '</select>';

} else {
echo '送信結果 FALSE';
}

} catch (Exception $e) {
echo $e->getMessage();
exit;
}

A 回答 (1件)

optionのvlaueとテキストに同じcategory_nameを与えているのに


例示では「A」と「あ」のように違う値が表示されているのはおかしい

$before_category_name !== $row['category_name']
のロジックは何をしたいかわからない

もしデータが重複しているならSELECT時にDISTINCTする必要があるが
なにか別の理由のような気がします
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す