Импорт значений из базы данных в выбор - PullRequest
0 голосов
/ 11 апреля 2019

Доброе утро;

Я пытаюсь загрузить некоторые значения из базы данных mysql в «select», внутри формы с HTML, PHP и некоторым javascript.

enter image description here

Я делаю школьный проект, и мне нужно несколько имен, которые зарегистрированы в базе данных.Когда я нажимаю на кнопку выбора, я хочу, чтобы они появились, чтобы я мог зарегистрировать один класс и назначить им директора классов (я не уверен, так ли это называется на английском языке).Когда я «редактирую» класс, я хочу, чтобы метод select поместил значение в базу данных, и я хочу, чтобы он позволил мне изменить значение.

enter image description here

У меня есть файл функций, который помогает мне с функциями, которые я использую на веб-сайте, и я сделал де-код, подобный этому.

function DBConnect ()
{
    $db = mysqli_connect (DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE) or die (mysqli_connect_error());
    return $db;
}

function DBClose($db)
{
    mysqli_close($db) or die (mysqli_error($db));
}

function DBExecute($sql)
{
    $db = DBConnect();
    $result = mysqli_query($db,$sql);
    DBClose($db);
    return $result;
}

function DBRead11()
{
    $sql="SELECT nome FROM user_especial";
    $result=DBExecute($sql);

    while($res=mysqli_fetch_assoc($result))
    {
        $dts[]=$res;
    }
    return $dts;
}

И код, который я использовал на странице php такselect может «порождать» значения вот этого:

<select name="diretor_turma" id="diretor_turma" required class="input-field4">
    <?php echo $dts; ?>
</select>

Моя база данных выглядит как таблица, которую я выложил по первой ссылке imgur.Кто-нибудь может мне помочь?Спасибо.

1 Ответ

1 голос
/ 11 апреля 2019

Если я правильно понял вашу проблему, проблема в том, что $dts не известен в элементе выбора HTML, поскольку он находится только в области действия функции DBRead11.Поэтому, прежде чем получить значение $dts, необходимо вызвать функцию DBRead11() и сохранить возвращенное значение в $dts.После этого, поскольку массив $dts должен содержать атрибут nome всех строк в базе данных, вы можете просмотреть все записи в $dts (например, с foreach()) и создать элемент опции HTML из значения вконкретный индекс.

В дополнение к этому, я думаю, вам нужно инициализировать $dts в вашей функции DBRead11 как $dts = array() или $dts = [] перед добавлением значений к ней.

function DBRead11() {
  $sql="SELECT nome FROM user_especial";
  $result=DBExecute($sql);

  $dts = mysqli_fetch_assoc($result);

  return $dts;
  }
<?php $dts = DBRead11(); ?>
<select name="diretor_turma" id="diretor_turma" required class="input-field4">
  <?php
    foreach($dts as $option) {
  ?>
    <option value="<?php echo $option['nome']; ?>"><?php echo $option['nome']; ?></option>
  <?php
    }
  ?>
</select>

Как уже спросил @ M.Hemant, укажите var_dump() переменной $dts.В противном случае, я не могу точно сказать, достаточно ли просто вывода $option (каждый элемент $ dts).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...