次のソースを使用して DropDownList を作成しようとしています。データベースには、列「alias_name」に「オプション 1」、「オプション 2」、または「オプション 3」としてタグ付けされたテーブル行がいくつかあります。タグ付けされていない他の表の行は、「alias_name」列にヌルがあります。結果として入力された DropDownList にはすべての名前が表示されますが、名前に連結する必要がある " -- Option #" が含まれているのは、すべての行のうちの 1 つだけです。個別の DB クエリは、データがデータベースにあることを証明し、14 行のオプションの 1 つが適切に表示されるという事実は当惑します。アイデアはありますか?
<select name="event_names[]" multiple="multiple" size="6">
<option value="all"<?php if(empty($event_names)||@in_array('all', $event_names))echo' selected';?>>ALL</option>
<?php
$m = Db::doQuery("SELECT name,alias_name FROM site_events WHERE name != '' GROUP BY name");
while ($n = $m->fetch_object()) {
$e_alias = '';
$e_name = $n->name;
$e_alias = $n->alias_name;
if($n->alias_name=='Option 1' || $n->alias_name=='Option 2' || $n- >alias_name=='Option 3')
{echo '<option value="'.$e_name.'"'.(@in_array($e_name, $event_names)?' selected':'').'>'.$e_name.' -- '.$e_alias.'</option>';}
else {echo '<option value="'.$e_name.'"'.(@in_array($e_name, $event_names)?' selected':'').'>'.$e_name.'</option>';}
}
?>
</select>