powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
6 сообщений из 6, страница 1 из 1
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39979197
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
На странице имеется форма и выпадающий список.
Форма нужна для занесения пользователем данных в БД.
Выпадающий список - для выбора пользователем определённых данных из той же БД.
Также есть скрипт для обработки данных для этих целей.
С записью данных из формы в БД всё в порядке (мне так кажется).
Проблема с автоматической выборкой данных пользователем из БД и подставлением в выпадающий список.
Фрагмент кода:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
$query = 'SELECT * FROM `poyas3`';
$result = $pdo->query($query);
$table = $result->fetchAll(PDO::FETCH_ASSOC);
//print_r($table);
//print_r($table);

    $a = $table[0]['title'];
    $b = $table[1]['title'];
    $c = $table[2]['title'];

?>

<form action="scriptdz811.php" method="post" name="form1">
    <p><select name="list1">
            <option>Выберите из списка</option>
            <option value="odin"><?php echo $a ?><option>
            <option value="dva"><?php echo $b ?></option>
            <option value="tri"><?php echo $c ?></option>
        </select></p>
    <p><input type="submit" value="Отправить"></p>
</form>


Если код будет иметь такой вид, то в выпадающем списке будет 3 варианта выбора. Если вручную в код и в форму добавить, например, такие строки:
Код: php
1.
$d = $table[3]['title'];


и, соответственно:
Код: php
1.
<option value="chetire"><?php echo $d ?></option>


то вариантов выбора в списке станет 4.
Весь вопрос в том, как это сделать автоматически, а не вручную? То есть, заносит пользователь в форму данные, они записываются в БД и всё. Дальше при обновлении страницы автоматически увеличивается выпадающий список.
Пробовал, через цикл - не получается.
...
Рейтинг: 0 / 0
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39979253
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Показывайте, как пробовали.
Рассказывайте, что конкретно не получается.

Впрочем, начать можно с простейшего исследования данных:
Код: php
1.
2.
3.
foreach($table as $idx => $data) {
    var_dump($idx, $data);
}
...
Рейтинг: 0 / 0
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39979524
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Много разных вариантов пробовал.
Ближе всего к решению задачи получается такой вариант:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
$query = 'SELECT * FROM `poyas3`';
$result = $pdo->query($query);
$table = $result->fetchAll(PDO::FETCH_ASSOC);

<form action="scriptdz811.php" method="post" name="form1">
    <p><select name="list1">
            <option>Выберите из списка</option>
            <option value="odin"><?php
            foreach($table as $idx => $data) {
                echo $table[$idx]['title'];
            }?><option>
        </select></p>
    <p><input type="submit" value="Отправить"></p>
</form>



При таком варианте все три записи появляются в выпадающем списке, но в одной строке, а нужно, чтобы было три строки (это же выпадающий список).

Цикл:
Код: php
1.
2.
3.
foreach($table as $idx => $data) {
    var_dump($idx, $data);
}



выводит такие данные:

int(0) array(3) { ["id"]=> string(1) "1" ["title"]=> string(17) "Asia/Ekaterinburg" ["offset"]=> string(13) "10 часов" } int(1) array(3) { ["id"]=> string(1) "2" ["title"]=> string(16) "Asia/Vladivostok" ["offset"]=> string(13) "15 часов" } int(2) array(3) { ["id"]=> string(1) "3" ["title"]=> string(12) "Europe/Paris" ["offset"]=> string(7) "1 чаc" }
...
Рейтинг: 0 / 0
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39979533
Фотография peter64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как то так

<select id="templateId" name="templateId" onchange="refreshJournal()" >
<?php include './db/order_get_template.php';?>
</select>

./db/order_get_template.php
...........
$query ="select id,collection_name from setup order by id desc";
$result = mysqli_query($link, $query) or die ('Error' . mysqli_error($link));
if ($result) {
while (list($id,$collectionName) = mysqli_fetch_array($result)) {
echo '<option value='.$id.'>'.$collectionName.'</option>';
}
}
...
Рейтинг: 0 / 0
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39979607
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavll
При таком варианте все три записи появляются в выпадающем списке, но в одной строке, а нужно, чтобы было три строки (это же выпадающий список).
Есть предложение. Даже два.
Первое - смотреть, читать код HTML, который на выходе скрипта получается (а не его отображение в браузере).
Второе - тег <option> поместить в тело цикла.

Pavll
выводит такие данные:
Ахххаааа. После медитации над имеющимися данными есть смысл задать себе вопрос вроде "ну и откуда тут брать odin, dva, tri, chetire и далее со всеми остановками?". Вполне вероятно, что исходная задача как-то как-то сильно изменится.
...
Рейтинг: 0 / 0
Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
    #39980163
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часть проблемы решилась.
Прописал строку в таком виде:
Код: php
1.
2.
3.
<?php foreach($table as $idx => $data) {
                echo '<option>'.$table[$idx]['title'].'</option>';
                }?>


Теперь, каждая запись выводится в выпадающем списке в отдельной строке. Что и требовалось.
Есть другая часть проблемы.
При выборе пользователем записи в выпадающем списке, должен появляться текст:
"Смещение от Гринвича: n часов"; n - это смещение часового пояса.
Например, если пользователь в выпадающем списке выберет "Chabarovsk" и нажмёт "Отправить", то должна появиться строка:
[ "Смещение от Гринвича: 12 часов";
Как это сделать?
Форма с выпадающим списком на данный момент выглядит так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<form action="scriptdz811.php" method="post" name="form1">
    <p><select name="list1">
            <option>Выберите из списка</option>

               <?php foreach($table as $idx => $data) {
                echo '<option>'.$table[$idx]['title'].'</option>';
                }?>
        </select></p>
    <p><input type="submit" value="Отправить"></p>
</form>



Фрагмент скрипта, в котором ловятся данные из формы:
Код: php
1.
2.
3.
4.
5.
6.
if(isset($_POST['list1'])){
    $select1 = $_POST['list1'];
   foreach($table as $idx => $data) {
       echo "Смещение от Гринвича: $table[$idx]['offset'] часов";
                }
}


Если необходимо, то выложу весь код!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите создать запрос к БД с массивом для автомат. подстановки данных в вып. список!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]