Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 2
Регистрация: 29.01.2019
Сообщений: 60

Заполнение поля со списком результатами запроса к базе

08.08.2025, 10:37. Показов 986. Ответов 6

Студворк — интернет-сервис помощи студентам
Добрый день! Хотел вот спросить - вот есть у меня поле со списком, вручную загоняю варианты для фильтра - это понятно:
HTML5
1
2
3
4
5
6
7
8
9
<form action="notebooks_store.php" method="POST">
    <select name="notebooks" id="color" size="0">
        <option value="default" selected="selected">------</option>
        <option value="52">На складе</option>
        <option value="issued">Выданы</option>
        <option value="broken">Некондиционные</option>
    </select>
    <input type="submit" value="Отправить">
</form>
Мне нужно по аналогии заполнить такое поле результатами запроса к базе PostgreSql - как это можно сделать? Спасибо за помощь.
Миниатюры
Заполнение поля со списком результатами запроса к базе  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.08.2025, 10:37
Ответы с готовыми решениями:

Получение и вывод результата запроса к базе через ajax
Необходимо вывести результаты sql запроса к базе в div через ajax. Не получается составить запрос....

Передача результата выпадающего списка в форме в базу данных mysql
Задача передавать чтобы из списка передавалось значение в базу, все остальные поля ввода передаются...

Обработка запроса в базу по кнопке,и вывод результата сразу на форму
Добрый вечер. В общем проблема такая. Кто разбирается помогите пожалуйста. Имеется некое меню с...

6
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,680
08.08.2025, 10:54
Лучший ответ Сообщение было отмечено shupike как решение

Решение

Последовательность будет примерно такой (для PHP):
1) Отправляете запрос в базу данных, сохраняете результат в переменную
2) Разбираете циклом выдачу из базы
3) На каждой итерации цикла генерируете очередную строку для списка
4) Выводите список

Например:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Здесь выбираем данные
$result = $db->query("SELECT id, color FROM colors");
$htmlForList = '';
 
// Разбираем данные и составляем поля для списка
foreach ($result as $row) {
    $htmlForList .= '<option value="' . $row['id'] . '">' . $row['color'] . '</option>';
}
 
// Формируем список
$html = '<form action="notebooks_store.php" method="POST">
        <select name="notebooks" id="color" size="0">
            ' . $htmlForList . '
        </select>
    </form>';
1
1 / 1 / 2
Регистрация: 29.01.2019
Сообщений: 60
08.08.2025, 10:57  [ТС]
А можно вот так?
PHP
1
2
3
4
5
6
7
8
$result = pg_query($conn,"select name,model,inventory_code,s_n,device_type_code from public.main where device_type_code=1 order by main.s_n");
if (!$result) {
  echo "An error occurred.\n";
  exit;
}
while ($row = pg_fetch_row($result)) {
       ....
}
В чем принципиальное отличие такого цикла от foreach?
0
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,680
08.08.2025, 11:32
Цитата Сообщение от shupike Посмотреть сообщение
А можно вот так?
Можно. Но если вы не используете ни PDO, ни обертки над операциями с БД - будьте осторожны при составлении запросов. Высокая вероятность получения уязвимости.

Можно почитать подробнее тут:
https://www.php.net/manual/ru/... tabase.php
0
1 / 1 / 2
Регистрация: 29.01.2019
Сообщений: 60
08.08.2025, 15:49  [ТС]
// Формируем список
PHP
1
2
3
4
5
$html = '<form action="notebooks_store.php" method="POST">
        <select name="notebooks" id="color" size="0">
            ' . $htmlForList . '
        </select>
    </form>';
Простите, вот здесь недопонял - пишем все это в переменную $html, а где сам вывод на экран? Это же нужно echo вызывать?

Добавлено через 19 минут
В итоге работает вот так:
PHP
1
2
3
4
5
6
7
8
9
while ($row_employer = pg_fetch_row($result_employer)) {
                   $htmlForList .= '<option value="' . $row_employer[0] . '">' . $row_employer[1] . '</option>';
}
// Формируем список
echo '<form action="notebooks_store.php" method="POST">
        <select name="notebooks" id="color" size="0">
            ' . $htmlForList . '
        </select>
    </form>';
Вариант с foreach не сработал почему-то. И нужно для переменной $htmlForList указывать $row_employer со значениями 0 и 1 (номера столбцов).
0
Эксперт PHP
 Аватар для liris
5127 / 1086 / 160
Регистрация: 16.01.2023
Сообщений: 2,680
08.08.2025, 18:20
Цитата Сообщение от shupike Посмотреть сообщение
Это же нужно echo вызывать?
Ну да. В нужном вам месте вызываете echo. Это просто пример. Может быть у вас линейное выполнение скрипта (то есть где логика, там и выводится). А может быть это будет делать какая-нибудь функция, а выводиться в другом месте. Вам виднее, как ваш код распределять.
0
1311 / 1003 / 232
Регистрация: 01.10.2018
Сообщений: 3,902
09.08.2025, 07:43
Цитата Сообщение от shupike Посмотреть сообщение
В итоге работает вот так
Некрасиво получилось. Незачем дробить формирование списка.

Цитата Сообщение от shupike Посмотреть сообщение
Это же нужно echo вызывать?
Можно использовать альтернативный синтаксис в шаблоне:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
// fetch_assoc и автоматическое освобождение ресурса
require_once INCLUDE_PATH.'pg/getrow.php';
 
?>
<form action="notebooks_store.php" method="POST">
    <select name="notebooks" id="color" size="0">
<?php while ($row = getrow($result)): ?>
        <option value="<?= $row['id'] ?>"><?= $row['name'] ?></option>
<?php endwhile; ?>
    </select>
</form>
Имя "склада" можно закодировать в HTML, например e($row['name']). Запрос нужно выполнять заранее, вне шаблона. Там же можно подключить и функции представления getrow() или e().

Добавлено через 5 минут
Кстати, это тоже может быть не "реальное эхо", т.е. вывод не в буфер вывода, а в обычный буфер в памяти (см. ob_start()/ob_get_clean())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.08.2025, 07:43
Помогаю со студенческими работами здесь

Передача данных между страницами html (запрос к базе)-> php (обработка) -> html (вывод результата обработки)
Есть два файла: 1) index.php HTML c кнопкой, которая запускает PHP обработчик запроса к базе...

Как результат запроса другого результата запроса запихнуть в массив?
Как результат запроса другого результата запроса запихнуть в массив? Здравствуйте, у меня такая вот...

Получение значения ячейки последней строки результата запроса
Задача такова: нужно после выполнения запроса $r=mysql_query(&quot;SELECT * FROM g2 WHERE ID&gt;='$ID'...

Выполнение запроса и получение его результата
Здравствуйте! Я произвожу добавление данных в таблицу используя PDO: $res =...

Получение результата запроса
Делаю авторизацию. Пытаюсь получить имя пользователя, но не пашет. Наверное, неправильно рез-ты...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru