Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
MySQL

Выбор из списка

22.01.2018, 14:17. Показов 1979. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Помогите пожалуйста поисковая система есть элемент селект, текстовое поле и кнопка. После выбора из списка из БД должно выйте должный результат. Вот код:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<form action="select.php" method="POST">
    
        <select name="vibor">
            <option> </option>
            <option value="k_nom">Ном </option>
            <option value="a_fio">Муаллиф </option>
            <option value="sol_nashr">Соли нашр </option>
            <option value="n_nom">Нашриёт </option>
            <option value="soha">Соҳа </option>
            <option value="zabon">Забон </option>
            <option value="BBK">ББК </option>
            <option value="УДК">УДК </option>
            <option value="ISBN">ISBN </option>
        </select>
        <input type="text" name="txt" />
        <input type="submit" name="search" value="Search"/>
        
    </form>
select.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if(isset($_POST['search'])){
 
 echo $_POST['vibor'].'</br>';
 echo $_POST['txt'];
 
 $q="SELECT * FROM `info_k` WHERE '".$_POST['vibor']."' = '".$_POST['txt']."';";
 $res=mysqli_query($link,$q);
     while($row = mysqli_fetch_array($res))
    {
        echo "Номи китоб: ".$row['k_nom']."<br>\n";
        echo "Муаллиф: ".$row['a_fio']."<br>\n";
        echo "Аннотация: ".$row['annotasia']."<br>\n";
        echo "ББК: ".$row['BBK']."<br>\n";
        echo "УДК: ".$row['УДК']."<br>\n";
        echo "Соли нашр: ".$row['sol_nashr']."<br>\n";
        echo "Номи нашриёт: ".$row['n_nom']."<br>\n";
        echo "Шаҳр: ".$row['shahr']."<br>\n";
        echo "Шӯъба: ".$row['sh_nom']."<br>\n";
        echo "Соҳа: ".$row['soha']."<br>\n";
        echo "Забон: ".$row['zabon']."<br>\n";
        echo "Полка: ".$row['x_polka']."<br>\n";
        echo "Шкаф: ".$row['x_shkaf']."<br>\n";
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.01.2018, 14:17
Ответы с готовыми решениями:

Выбор позиции из большого списка
Есть страница создания новой статьи, в определенном месте нужно сделать выбор позиции из большого списка (1000+), поэтому выпадающие...

Выбор базы данных из списка доступных
Доброго времени суток. Пишу СУБД MYSQL, и вот столкнулся с проблемой выбора базы данных из раскрывающегося списка. Список доступных для...

Пошаговый выбор значения из списка на каждом уровне
https://pastebin.com/AATkk2hq &lt;?xml version =&quot;1.0&quot; encoding =&quot;utf-8&quot;?&gt; &lt;Catalog&gt; &lt;Scripts&gt; &lt;Script&gt; ...

16
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 14:22
Где у Вас $link определяется?
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 14:32  [ТС]
есть файл conn.php

PHP
1
2
3
4
5
6
<?php
//подключение к серверу MySql
$link=mysqli_connect('localhost','root','','biblioteka') or die(mysqli_error($link));
//Установка кодировки
mysqli_query($link,'SET names utf8');
?>
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 14:36
Обрамите Ваши скрипты в соответствующие спойлеры, не удобно в них разбираться.

Как связаны Ваши файлы php? include или ещё как? И что Ваш скрипт сейчас выдаёт?
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 14:49  [ТС]
фыйли связаны с помощью include. Запрос выдаёт информацию про книгу. мне нужно чтобы он выбрал поле которого выбрали в списке и текст. И вывел только один соответствущий ответ.
Если убрать аз запроса WHERE
$q="SELECT * FROM `info_k`"
то выводиться вся книга, а мне нужна информация про одной книги
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 15:38
Цитата Сообщение от mmm3 Посмотреть сообщение
Если убрать аз запроса WHERE $q="SELECT * FROM `info_k`"
Не удивительно.

Однако же что в
Цитата Сообщение от mmm3 Посмотреть сообщение
вывел только один соответствущий ответ
?

Да и попробуйте вместо строки 6 переиначить вот так:

PHP
1
2
3
$vibor = $_POST['vibor'];
$txt = $_POST['txt'];
$q = "SELECT * FROM `info_k` WHERE \"$vibor\" = \"$txt\";
Ещё вопрос - в таблице mysql у Вас все эти столбцы есть: k_nom, a_fio, sol_nashr и т.д.?
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 16:13  [ТС]
да все эти поля есть в БД

Добавлено через 47 секунд
не получается результат пуст
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 16:22
Я тут сам поднакосячил, нужно исправить:

PHP
1
$q = "SELECT * FROM `info_k` WHERE \"$vibor\" = \"$txt\"";
Проверьте на всякий $res. Ещё, ну совсем уж "прыщавое" изменение: вместо mysqli_fetch_array($res) вот эту конструкцию mysqli_fetch_assoc($res).
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 16:39  [ТС]
нечего не получилось
а может есть другой вариант
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 16:44
Доберусь до компа, попробую создать табличку с парой полей и посмотрю, чего там не клеится.
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 16:46  [ТС]
спасибо буду ждать.
0
Web Programmer
 Аватар для JimUSA
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
22.01.2018, 18:34
Лучший ответ Сообщение было отмечено mmm3 как решение

Решение

mmm3, Попробуйте заменить это
PHP
1
$q="SELECT * FROM `info_k` WHERE '".$_POST['vibor']."' = '".$_POST['txt']."';";
на
PHP
1
2
3
$vibor = mysqli_real_escape_string($link, $_POST['vibor']);
$txt = mysqli_real_escape_string($link, $_POST['txt']);
$q = "SELECT * FROM `info_k` WHERE `{$vibor}`='{$txt}'";
1
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
22.01.2018, 18:57  [ТС]
Спасибо JimUSA. Всё заработала.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
22.01.2018, 18:59
Лучший ответ Сообщение было отмечено mmm3 как решение

Решение

Ну у меня срослось. Там ещё один косячок был, который я не заметил - обратные ковычки в названиях полей mysql.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<meta http-equiv = "Content-Type" content = "text/html" charset = "utf-8">
<form action="select.php" method="POST">
<select name="vibor">
            <option> </option>
            <option value="k_nom">Ном </option>
            <option value="a_fio">Муаллиф </option>
            <option value="sol_nashr">Соли нашр </option>
            <option value="n_nom">Нашриёт </option>
            <option value="soha">СоТіа </option>
            <option value="zabon">Забон </option>
            <option value="BBK">ББК </option>
            <option value="UDK">УДК </option>
            <option value="ISBN">ISBN </option>
        </select>
        <input type="text" name="txt" />
        <input type="submit" name="search" value="Search"/>  
    </form>
select.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
echo '<html><meta http-equiv = "Content-Type" content = "text/html" charset = "utf-8">';
echo $_POST['vibor'].'</br>';
echo $_POST['txt'].'</br></br>';
$vibor = $_POST['vibor'];
$txt = $_POST['txt'];
$link = mysqli_connect('localhost','user','','new_bd') or die(mysqli_error($link));
mysqli_query($link,'SET names utf8');
$q = "SELECT * FROM `info_k` WHERE `$vibor` = \"$txt\"";
 
$res = mysqli_query($link, $q) or die(mysqli_error());
while($row = mysqli_fetch_assoc($res))
{
    echo "Номи китоб: ".$row['k_nom']."<br>";
        echo "Муаллиф: ".$row['a_fio']."<br>";
        echo "Аннотация: ".$row['annotasia']."<br>";
        echo "ББК: ".$row['BBK']."<br>";
        echo "УДК: ".$row['UDK']."<br>";
        echo "Соли нашр: ".$row['sol_nashr']."<br>";
        echo "Номи нашриёт: ".$row['n_nom']."<br>";
        echo "ШаТір: ".$row['shahr']."<br>";
        echo "ШУЇъба: ".$row['sh_nom']."<br>";
        echo "СоТіа: ".$row['soha']."<br>";
        echo "Забон: ".$row['zabon']."<br>";
        echo "Полка: ".$row['x_polka']."<br>";
        echo "Шкаф: ".$row['x_shkaf']."<br>";
}
echo '</html>';
?>
у меня пользователь user (у Вас root) база new_bd (у Вас biblioteka).
0
0 / 0 / 0
Регистрация: 22.01.2018
Сообщений: 10
24.01.2018, 14:13  [ТС]
спасибо atanov за помощь.
0
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 57
24.01.2018, 14:58
мне кажется лучше вывод сделать используя JS. с помощью echo выводить это не есть гууд.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
24.01.2018, 15:06
apxibu119,
Почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.01.2018, 15:06
Помогаю со студенческими работами здесь

Выбор из списка
Допустим у меня есть массив слов, как создать поле (или элемент) с такой стрелочкой вниз, кликаешь на стрелочку и разворачиваеться весь...

Выбор из списка
Всем привет, Вывожу следующий список: for app in path_f: print (app) Получаю:C:\App\aimp_3.55.1355.exe ...

Выбор из списка
Здравствуйте! Подскажите пожалуйста, вот у меня есть выпадающий список, как описать в php что если выбирают одну позицию из списка нужно...

Выбор из списка
Добрый день. Если возможность при выборе поля ввода допустим Наименование, что будут преложены уже допустим 4 наименования. Я знаю один...

Выбор из списка
Есть 2 активити. В первом активити кнопка, и TextView. При нажатии на кнопку происходит переход ко второму активити. На втором активити...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru