如何在PHP中结合HTML代码展示MySQL表中的数据?
修复你的MySQL数据转HTML表格代码
看起来你在把MySQL数据渲染成HTML表格时遇到了结构和兼容性问题,我帮你梳理下问题点,再给出完善后的代码:
原代码的几个核心问题
- 过时的
mysql_*函数:这套函数早在PHP 5.5就被废弃,PHP 7+直接移除了,不仅不安全,还会导致代码在新环境跑不起来,建议换成mysqli_*或者PDO。 - HTML结构不完整:你只拼接了
<td>单元格,但没包裹<tr>行标签,表格会渲染错乱;另外table table- hover里的空格多了,应该是table table-hover(Bootstrap的正确类名)。 - 缺少错误处理:如果数据库连接失败或者查询出错,代码会直接报错,没有任何容错机制。
完善后的代码示例(用mysqli扩展)
<?php // 1. 建立数据库连接(替换成你的数据库信息) $conn = mysqli_connect('localhost', '用户名', '密码', '数据库名'); if (!$conn) { die('数据库连接失败: ' . mysqli_connect_error()); } // 2. 准备查询语句 $consultaSucursales = "SELECT id, empresa FROM empresa"; $ejecutar = mysqli_query($conn, $consultaSucursales); // 3. 检查查询是否成功 if (!$ejecutar) { die('查询失败: ' . mysqli_error($conn)); } // 4. 构建HTML表格,完善结构 $codigoHTML = '<table width="100%" border="1" class="table table-hover">'; // 可选:添加表头 $codigoHTML .= '<thead><tr><th>ID</th><th>企业名称</th></tr></thead>'; $codigoHTML .= '<tbody>'; // 遍历查询结果 while ($fila = mysqli_fetch_assoc($ejecutar)) { // 每一行用<tr>包裹<td> $codigoHTML .= '<tr>'; $codigoHTML .= '<td><center>' . $fila['id'] . '</center></td>'; $codigoHTML .= '<td><center><strong>' . $fila['empresa'] . '</strong></center></td>'; $codigoHTML .= '</tr>'; } $codigoHTML .= '</tbody></table>'; // 5. 输出或者使用HTML echo $codigoHTML; // 6. 关闭连接 mysqli_close($conn); ?>
几个关键改进说明
- 用
mysqli_*替代mysql_*,支持现代PHP版本,还能使用预处理语句防止SQL注入(如果后续有动态参数的话)。 - 补全了表格的
<thead>、<tbody>、<tr>标签,保证HTML结构合法,渲染正常。 - 添加了连接和查询的错误判断,方便调试问题。
- 修正了Bootstrap类名的空格问题,确保样式生效。
内容的提问来源于stack exchange,提问作者Diego Freyre
相关产品推荐
相关产品推荐

