Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
#1

Выпадающий список и БД

26.10.2016, 14:08. Просмотров 588. Ответов 18
Метки нет (Все метки)

Доброго времени суток уважаемые пользователи форума.
Имеется форма записи и в ней выпадающий список, также есть база данных с таблицей и двумя колонками (id и specialty).
Нужно чтобы в выпадающем списке можно было выбрать запись из поля specialty (возможно ли после того как ввел необходимые данные в форме и выбрал запись из нужного поля через выпадающий список, запись шла под выбранную запись).
Форма записи успешно вносит введенные данные в базу данных но это в другую таблицу (есть обработчик формы который выполняет подключение и обрабатывает данные средствами PDO).
Подозреваю что выпадающий список к таблице в бд нужно подключить и сделать выборку средствами PDO.
Пробовал множество вариантов, все безуспешно.
Помогите кто чем может.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2016, 14:08
Ответы с готовыми решениями:

выпадающий список
Добрый день! не получается сделать выпадающий список со значениями из БД! ...

Выпадающий список
Здравствуйте есть выпадающий список мне нужно чтоб в нем можно было выбирать...

Выпадающий список из бд
У меня возник вопрос: делаю выпадающий список, список выводится, но при...

Выпадающий список
Здравствуйте, вот мой получившийся код. Задача сводится к тому, чтобы можно...

выпадающий список из БД
Здравствуйте,помогите,пожалуйста. у меня есть БД,в ней таблицы связаны друг с...

18
brain-4-me
121 / 122 / 83
Регистрация: 24.12.2013
Сообщений: 664
Записей в блоге: 10
26.10.2016, 14:10 #2
SergSKH, а примеры есть? как пробовал, что не получается?
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 15:38  [ТС] #3
Не получается соединить выпадающий список с бд.
Вот как пробовал:
Через процедурный стиль:
PHP
1
2
3
4
5
6
7
8
9
<select name="doc">
            <option value="0">Выберите врача</option>
            <?
    $sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`");
    while ($row = mysqli_fetch_assoc($sql)) {?>
    <option value="<?=$row['specialty']?>"><?=$row['specialty']?></option>
    <?}
    ?>
           </select>
PHP
1
2
3
4
5
6
7
8
9
10
11
и соединение через PDO пробовал:
<select name="doc">
            <option value="0">Выберите врача</option>
    $dbh = new PDO('mysql:host=localhost;dbname=Registry', 'root'); 
            $stmt = $db->query('SELECT * from Doctors');
$stmt->setFetchMode(PDO::FETCH_ASSOC);
while($row = $stmt->fetch())
{
    echo "<p>" . $row['specialty'] . "</p><br/>";
}
</select>
И вот так:
PHP
1
2
3
4
5
6
7
8
9
<?
    $dbh = new PDO('mysql:host=localhost;dbname=Registry', 'root');
    $res = mysql_query('select 'specialty' from 'Doctors'');
    while($row = mysql_fetch_assoc($res)){
    ?>
    <option value="<?=$row['specialty']?>"><?=$row['specialty']?></option>
    <?
}
?>
Толку нет!
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 16:06 #4
PHP
1
$sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`") or die(mysqli_error($link));
Что выведет?
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 16:48  [ТС] #5
СлаваВирус, я пробовал ничего не выводит, выше есть же примеры, если конечно же я правильно пробовал)
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 16:51 #6
PHP
1
2
3
4
5
6
7
8
9
<select name="doc">
<option value="0">Выберите врача</option>
 <?
$sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`") or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($sql)) {?>
<option value="<?=$row['specialty']?>"><?=$row['specialty']?></option>
 <?}
 ?>
</select>
Эта часть кода выведет ошибку при попытке обработать запрос к базе, с учетом того, что соединение установлено (не знаю верно ли объявлена переменная $link у вас)
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 16:59  [ТС] #7
СлаваВирус, Походу я ее не где не объявлял кроме как в этом коде.
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:02 #8
Цитата Сообщение от SergSKH Посмотреть сообщение
Походу я ее не где не объявлял кроме как в этом коде.
Как же тогда произойдет соединение с БД?)
PHP
1
2
3
4
$link = mysqli_connect('your_host', 'user', 'password', 'dbname');
if(!$link) {
echo mysqli_connect_error(); die;
}
И только потом использовать $link, значения свои подставьте только
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:04  [ТС] #9
Вот я бум бум))
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:06 #10
Цитата Сообщение от SergSKH Посмотреть сообщение
Вот установил соединение, объявил переменную $link
Используйте синтаксис, приведенный мной выше. Вы использовали не ту библиотеку, плюсом указали недостаточно сведений для установки соединения
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:12  [ТС] #11
В общих чертах вот что получилось, выпадающий список дает выбрать какое-то пустое поле, хотя поле specialty не пустое
PHP
1
2
3
4
5
6
7
8
9
10
<?
$link = mysqli_connect('localhost', 'root', 'Registry');
if(!$link) {
echo mysqli_connect_error(); die;
}
$sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`") or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($sql)) {?>
<option value="<?=$row['specialty']?>"><?=$row['specialty']?></option>
 <?}
 ?>
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:15 #12
PHP
1
2
3
4
5
6
7
8
9
<?
$link = mysqli_connect('localhost', 'root', 'Registry');
if(!$link) {
echo mysqli_connect_error(); die;
}
$sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`") or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($sql)) {
var_dump($row);
} ?>
Что выведет?
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:20  [ТС] #13
СлаваВирус, Просто выберите врача, я думаю без PDO не обойтись, как я писал выше у меня есть обработчик который заносит данные с формы в определенную таблицу, там и используется PDO, может нужно что то там дописать для задействования выпадающего списка?

Добавлено через 1 минуту
Вот та таблица с полем specialty
MySQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE Registry.Doctors (
  id BIGINT(20) NOT NULL AUTO_INCREMENT,
  specialty VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 3
AVG_ROW_LENGTH = 8192
CHARACTER SET utf8
COLLATE utf8_general_ci;
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:26 #14
PHP
1
2
3
4
5
6
7
8
9
<?
$link = mysqli_connect('localhost', 'root', 'Registry');
if(!$link) {
echo mysqli_connect_error(); die;
}
$sql = mysqli_query($link, "SELECT `specialty` FROM `Doctors`") or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($sql)) {
var_dump($row);
} ?>
Выполните исключительно этот код уж тогда без всяких выпадающих списков и прочего, он не может ничего не вывести на экран
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:38  [ТС] #15
СлаваВирус, При исполнении кода выходит ошибка:
Access denied for user 'root'@'localhost' (using password: YES) - хотя пароля в БД нет
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:40 #16
Попробуйте явно указать на отсутствие пароля задав пустой в соединении
PHP
1
$link = mysqli_connect('localhost', 'root', '', 'Registry');
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:43  [ТС] #17
СлаваВирус, Массив выводит array(1) { ["specialty"]=> string(16) "Терапевт" } array(1) { ["specialty"]=> string(20) "Стоматолог" }
0
СлаваВирус
469 / 397 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
26.10.2016, 17:45 #18
PHP
1
2
3
4
5
6
7
8
9
10
<?
$link = mysqli_connect('localhost', 'root', '', 'Registry');
if(!$link) {
echo mysqli_connect_error(); die;
}
$sql = mysqli_query($link, "SELECT `id`, `specialty` FROM `Doctors`") or die(mysqli_error($link));
while ($row = mysqli_fetch_assoc($sql)) {?>
<option value="<?=$row['id']?>"><?=$row['specialty']?></option>
 <?}
 ?>
Ну тогда вот финальная часть, рекомендую все же из базы еще идшки брать и именно их помещать в value
0
SergSKH
0 / 0 / 0
Регистрация: 09.05.2016
Сообщений: 39
26.10.2016, 17:50  [ТС] #19
СлаваВирус, К сожалению безрезультатно, в любом случае спасибо вам за помощь и успехов вам, у меня уже почти 2 часа ночи, пора отдыхать. Если будут какие нибудь соображения прошу напишите.
0
26.10.2016, 17:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2016, 17:50

Выпадающий список из БД
Доброго времени суток! Необходима помощь с отображением данных в выпадающем...

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

Выпадающий список
Бэкап таблицы: CREATE TABLE IF NOT EXISTS `iniciator` ( `id` int(11) NOT...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru