📜  从数据库中回显 php 下拉列表并将其保存在数据库中 - PHP (1)

📅  最后修改于: 2023-12-03 15:36:18.385000             🧑  作者: Mango

从数据库中回显 PHP 下拉列表并将其保存在数据库中 - PHP

在 PHP 中,我们经常需要从数据库中获取数据并将其显示在下拉列表中,同时还要能将用户选择的选项保存回数据库中。以下是一个包含完整代码片段的例子,介绍如何实现这一过程。

获取数据

首先,我们需要从数据库中获取数据。假设我们有一个名为 items 的表,其中包含 idname 两个字段,我们需要将 name 显示在下拉菜单中:

<?php
// 连接数据库
$connection = mysqli_connect('localhost', '用户名', '密码', '数据库名');

// 检查连接
if (!$connection) {
    die("连接失败: " . mysqli_connect_error());
}

// 查询数据
$sql = "SELECT id, name FROM items";
$result = mysqli_query($connection, $sql);
?>

<!-- 显示下拉列表 -->
<select name="items">
<?php while ($row = mysqli_fetch_assoc($result)) { ?>
    <option value="<?= $row['id'] ?>"><?= $row['name'] ?></option>
<?php } ?>
</select>

<?php mysqli_close($connection); ?>

这段代码连接到名为 数据库名 的数据库,并查询 items 表的所有记录。然后,使用 PHP 循环遍历结果集,并将每一行的 id 显示为选项的值,将 name 显示为选项的文本。

注意,我们在每个选项的值上使用了 PHP 的短标签 (<?= ?>),这等效于使用 <?php echo ... ?>,只是更简洁一些。

保存数据

接下来,我们需要能够将用户选择的选项保存回数据库中。为此,我们可以使用 POST 请求和 PHP 表单处理。以下是一个提交表单的例子:

<?php
// 连接数据库等代码同上

// 提交表单处理
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $item_id = $_POST["items"];
    $sql = "INSERT INTO orders (item_id) VALUES ($item_id)";
    mysqli_query($connection, $sql);
}
?>

<!-- 显示表单 -->
<form method="post">
    <select name="items">
    <?php mysqli_data_seek($result, 0); // 重新指向结果集的开头 ?>
    <?php while ($row = mysqli_fetch_assoc($result)) { ?>
        <option value="<?= $row['id'] ?>"><?= $row['name'] ?></option>
    <?php } ?>
    </select>
    <button type="submit">提交</button>
</form>

<?php mysqli_close($connection); ?>

这段代码首先检查是否收到了来自 POST 请求的数据。如果是,则将用户选择的项的 id 插入到名为 orders 的表中。我们假设 orders 表包含一个名为 item_id 的字段,用于存储用户选择的项的 id

然后,我们在 HTML 表单中显示下拉菜单和提交按钮。注意,我们使用 mysqli_data_seek 将结果集指向开头,以便第二次循环渲染下拉菜单。

总结

通过连接到数据库并查询数据,我们可以在 PHP 中轻松地回显下拉列表。使用表单处理,我们还可以将用户选择的项保存回数据库中。这是一个基本的例子,可以根据需要进行修改,例如添加输入验证或更改表名。