Как заполнить раскрывающийся список HTML значениями из базы данных

как часть создаваемой мной HTML-формы, я хотел бы иметь раскрывающийся список, в котором будут перечислены все имена пользователей в моей базе данных.

Я думал, что следующий код поможет, но раскрывающийся список пуст. Может ли кто-нибудь помочь мне в том, что я делаю неправильно? Спасибо.

<tr>
<td>Owner</td>
<td>
<select name="owner">
<?php 

$sql = mysqli_query($connection, "SELECT username FROM users");

while ($row = $sql->fetch_assoc()){

?>
<option value="owner1"><?php echo $row['username']; ?></option>

<?php
// close while loop 
}
?>
</td>
</tr>
24
задан Michael 25 August 2016 в 19:52
поделиться

3 ответа

Я предполагаю, что у вас есть проблема, так как вы не закрываете свой тег выбора после цикла. Может ли это сделать трюк?

<select name="owner">
<?php 
$sql = mysqli_query($connection, "SELECT username FROM users");
while ($row = $sql->fetch_assoc()){
echo "<option value=\"owner1\">" . $row['username'] . "</option>";
}
?>
</select>
31
ответ дан 28 November 2019 в 22:56
поделиться

Я бы предложил выполнить несколько шагов отладки.

Сначала запустите запрос непосредственно к БД. Подтвердите, что это приносит результаты. Даже с такой простой вещью вы можете обнаружить, что допустили ошибку, или таблица пуста, или какая-то странность.

Если все в порядке, попробуйте зацикливать и выводить содержимое $ row прямо в HTML, чтобы увидеть, что вы получаете в mysql_query - посмотрите, совпадает ли это с тем, что вы получили непосредственно в БД.

Если ваши данные выводятся на страницу, посмотрите, что не так в вашем HTML-форматировании.

Однако, если ничего не выводится из $row, то выясните, почему mysql_query не работает, например. имеет ли пользователь право запрашивать эту БД, есть ли у вас открытое соединение с БД, может ли веб-сервер подключиться к БД и т. д. [что-то в этих строках часто может быть ошибочным]

Слегка изменив ваш запрос на

$sql = mysql_query("SELECT username FROM users") or die(mysql_error());  

может помочь выделить любые ошибки: php manual

6
ответ дан 28 November 2019 в 22:56
поделиться
<?php
 $query = "select username from users";
 $res = mysqli_query($connection, $query);   
?>


<form>
  <select>
     <?php
       while ($row = $res->fetch_assoc()) 
       {
         echo '<option value=" '.$row['id'].' "> '.$row['name'].' </option>';
       }
    ?>
  </select>
</form>
2
ответ дан 28 November 2019 в 22:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: