Здравствуйте! Подскажите пожалуйста как грамотно составить HTML список select на основе выборки из базы данных. Полдня ломаю голову. Дошел до такого варианта:
<?php
function protocol_sql_content() {
//подключаюсь бд
try {
$competition = db_query("SELECT id, name_ru FROM " . BDNAME . "." . TABLENAME);
} catch (Exception $e) {
return "При подключении к базе данных возникла ошибка <b><u>{$e->getMessage()}</u></b>";
}
$rows = array();
for($i=0;$competition_rows = $competition->fetchAssoc();$i++){
$rows[$i] = $competition_rows;
$form = array();
$form['term-selected'] = array(
'#type' => 'select',
'#title' => t('Терминов в блоке'),
'#options' => array($rows[$i]['id'] => $rows[$i]['name_ru']),
);
}
return
$form;
}?>
Но этот вариант выводит только одну строку из выборки. А как вывести все строки?
Комментарии
<?php
$options = [];
$items = $competition->fetchAssoc();
foreach ($items as $item) {
$options[$item['id']] = $item['name_ru'];
}
$form['term-selected'] = [
'#type' => 'select',
'#title' => t('Terms in block'), // Не используйте переводы в переводимых строках!
'#options' => $options,
];
?>
Благодарю! Не знал, что массивы можно объявлять символом '[]'.
С в. 5.4 можно.
В семерке это не соответствует стандартам кода.
Нафиг такие стандарты!Если нет желания выкладывать на орг и казаться там "примерным кодером" - можно игнорить подобные архаизмы.
Когда лично для себя пишу - вообще по PSR'ам.