Как отображать результаты БД в виде параметров в раскрывающемся списке HTML с помощью PHP и Mysqli?

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

Не уверен, что это актуально, но я использую Windows Server, IIS 10 и последние версии PHP и MySql.

<div class = "form-group col-md-3">
    <label for = "state">State</label>
    <select class = "form-control" name = "state" id = "state">
                                            
    <?php  
    // Query to find STATE
    $sql1 = "SELECT * FROM codetable WHERE category = 'state'";
    $result1 = $conn->query($sql1);

    $row1 = mysqli_fetch_array($result1);

    while($row1 = mysqli_fetch_array($result1))  
        {  
            echo '<option value = " '.$row1['code'].' "> '.$row1['description'].' </option>';  
         }
     ?>
    </select>
</div>

Я ожидаю, что список из БД будет в раскрывающемся списке, но он пуст (нет раскрывающегося списка).

Почему у вас есть дополнительный вызов mysqli_fetch_array() перед циклом? Это пропустит первую строку.

Barmar 29.05.2019 21:28

Не ставьте пробелы вокруг значения параметра.

Barmar 29.05.2019 21:29

Видите ли вы варианты, если используете View Source?

Barmar 29.05.2019 21:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
49
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Избавьтесь от $row1 = mysqli_fetch_array($result1); перед циклом while и замените цикл этим...

while($row1 = mysqli_fetch_array($result1))  
{  
    ?>
        <option value = "<?php echo $row1['code']; ?>"><?php echo $row1['description']; ?></option> 
    <?php
}

Повторение HTML не является хорошей практикой. Разбивайте его тегами PHP, когда это возможно, это значительно облегчит отладку вашего кода.

Дополнение: как отобразить запись БД в форме редактирования и при этом позволить раскрывающемуся меню работать с обновлениями?

Ricardo Matos 30.05.2019 04:07
Ответ принят как подходящий

удалить свой первый

$row1 = mysqli_fetch_array($result1);

линия & поместите две переменные (результат и строку1) в var_dump, чтобы получить отладку

Другие вопросы по теме