使用PHP mysqli查询生成HTML下拉框无结果问题求助
解决PHP mysqli生成HTML下拉框无结果的问题
嘿,我看到你在生成PHP mysqli下拉框时遇到了无结果的问题,这大概率是因为你混用了不同的数据库扩展函数,咱们一步步来解决:
核心问题分析
你代码里的关键错误是:用mysqli_query()(mysqli扩展)执行查询后,却用mysql_fetch_array()(旧的mysql扩展)去读取结果——这两个扩展完全不兼容,所以根本读不到数据。另外,咱们还得加上错误处理,方便排查其他潜在问题。
修正后的完整代码
<select name="sede"> <option value="" selected=""> -- Select -- </option> <?php // 引入数据库连接文件 include("conexion_BBDD.php"); // 检查数据库连接是否成功 if (!$conexion_bbdd) { die("数据库连接失败: " . mysqli_connect_error()); } $sql = "SELECT nombre FROM sedes"; $result = mysqli_query($conexion_bbdd, $sql); // 检查查询是否成功 if (!$result) { die("查询失败: " . mysqli_error($conexion_bbdd)); } // 使用mysqli_fetch_assoc()读取关联数组(比fetch_array更高效,因为只需要键值对) while ($row = mysqli_fetch_assoc($result)) { // 注意value里不要留多余空格,避免后续取值出错 ?> <option value="<?php echo htmlspecialchars($row['nombre']); ?>"> <?php echo htmlspecialchars($row['nombre']); ?> </option> <?php } // 释放结果集 mysqli_free_result($result); // 关闭数据库连接(可选,PHP脚本结束后会自动关闭,但好习惯) mysqli_close($conexion_bbdd); ?> </select>
额外调试建议
- 先确认你的
conexion_BBDD.php里的数据库连接参数(主机、用户名、密码、数据库名)都是正确的 - 手动执行SQL语句
SELECT nombre FROM sedes,看看数据库里有没有数据 - 如果还是有问题,可以临时添加
echo $sql;输出SQL语句,检查是否有语法错误
内容的提问来源于stack exchange,提问作者Codeboked
相关产品推荐
相关产品推荐

