MySQL的下拉表单列表


Drop down form list with MySQL

所以我想在表单中创建一个下拉列表,但我不想手动在表单中写入选项,而是想将其链接到我的数据库。

HTML

<form>
<select name="fruit">
  <option value="apple">Apples</option>
  <option value="banana">Bananas</option>
  <option value="pear">Pears</option>
</select>
<input type="submit" value="Submit">
</form>

这是我目前所拥有的,但我想排除选项值,并用数据库中的现有记录替换它们。我如何在PHP中做到这一点?

我知道我会使用类似的东西,但我不确定

$results = $pdo->query('SELECT * FROM fruit');
            foreach ($results as $row)

感谢您的帮助:)

假设您的fruit表具有name字段:

<form>
<select name="fruit">
<?php 
    $results = $pdo->query('SELECT * FROM fruit');
    foreach ($results as $row):
?>
  <option value="<?php $row['name']?>"><?php ucfirst($row['name']) . "s"; ?></option>
<?php endforeach; ?>
</select>
<input type="submit" value="Submit">
</form>
<form>
<select name="fruit">
<?php
$conn = new PDO("mysql:host=localhost;dbname=database", 'username', 'password', array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$results = $conn->query("SELECT * FROM fruit");
while($row = $results->fetch( PDO::FETCH_ASSOC )){ 
?>
<option value="<?= $row['id'] ?>"><?= $row['fruitname'] ?></option>
<?php
}
?>
</select>
<input type="submit" value="Submit">
</form>

这应该会让你对如何做到这一点有一个基本的想法。

在您的案例中,这就是解决方案:

<form>
    <select name="fruits" class="form-control">
    <?php
    $results = $pdo->query('SELECT * FROM fruit');
    foreach ($results as $row)
    {
     ?><option value="<?= $row['id'] ?>"><?= $row['fruitname'] ?></option><?php
    }
    ?>
    </select>
<input type="submit" value="Submit">
</form>