You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP本地数据源下拉列表不显示已插入数据问题求助

解决下拉列表不显示「Amsterdam」的问题

嘿,我来帮你搞定这个问题!你插入「Amsterdam」到locatie表后看不到它,核心问题是你的PHP代码只读取了数据库查询结果的第一行,没遍历所有数据。咱们一步步修正:

原代码的问题

你写的$rows = mysqli_fetch_array($sql);只会获取查询结果的第一行数据,之后的循环如果逻辑不对,就没法展示所有的地理位置选项,自然可能看不到「Amsterdam」。

修正后的完整代码

<td>Locatie</td>
<select name="locatie" id="per1">
    <option selected="selected">Choose one</option>
    <?php
    include_once("../config");
    // 先确认数据库连接正常
    if (!$mysqli) {
        die("数据库连接失败: " . mysqli_connect_error());
    }
    // 执行查询语句
    $sql_query = mysqli_query($mysqli, "SELECT Locatie FROM locatie");
    // 用while循环遍历所有查询结果
    while ($row = mysqli_fetch_array($sql_query)) {
        // 转义输出内容,避免XSS和HTML语法问题
        $locatie_value = htmlspecialchars($row['Locatie']);
        echo "<option value='$locatie_value'>$locatie_value</option>";
    }
    // 释放结果集并关闭连接(推荐操作)
    mysqli_free_result($sql_query);
    mysqli_close($mysqli);
    ?>
</select>

关键优化点

  • 遍历所有结果:用while ($row = mysqli_fetch_array($sql_query))循环,每次获取一行数据,直到所有结果都处理完,这样不管「Amsterdam」在第几行都能显示
  • 安全输出:用htmlspecialchars()转义输出的地理位置名称,防止恶意脚本注入(XSS攻击)和HTML语法错误
  • 连接检查:增加了数据库连接失败的提示,方便你排查连接问题
  • 资源释放:用完结果集后释放资源、关闭数据库连接,养成良好的代码习惯

额外排查建议

  1. 先确认locatie表中确实存在「Amsterdam」:可以用数据库管理工具(比如phpMyAdmin)执行SELECT * FROM locatie;查询验证
  2. 检查../config文件的数据库连接参数:主机、用户名、密码、数据库名是否正确,确保连接的是你插入数据的那个数据库
  3. 注意大小写:有些数据库(比如MySQL在Linux环境)区分表名和字段名的大小写,确认locatie表名和Locatie字段名和数据库中的完全一致

内容的提问来源于stack exchange,提问作者guusquish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:17:31