PHP使用Oracle数据库获取指定行列数据并按分类渲染到HTML表格
PHP操作Oracle数据库按分类渲染HTML表格实现方案
环境准备
- 确认PHP已开启OCI8扩展(Oracle官方PHP驱动,用于连接Oracle数据库)
- 提前准备Oracle数据库连接信息:主机地址、端口、服务名、用户名、密码
数据库连接代码
// 建立Oracle连接 $conn = oci_connect('你的数据库用户名', '你的数据库密码', '//数据库IP:端口/服务名'); if (!$conn) { $err = oci_error(); die("数据库连接失败:" . htmlentities($err['message'])); }
数据查询逻辑
你需要关联两张表:分类表(存储Car dept的分类1、分类2等数据)、业务数据表(存储cell name及其他业务字段),查询时按分类ID排序保证输出顺序符合预期:
// 关联查询SQL,可根据实际表结构、字段调整 $query = "SELECT t1.dept_id, t1.dept_name, t2.cell_name, t2.field1, t2.field2, t2.field3 FROM dept_info t1 LEFT JOIN business_data t2 ON t1.dept_id = t2.dept_id ORDER BY t1.dept_id ASC"; $statement = oci_parse($conn, $query); oci_execute($statement);
参考表结构与预期效果


HTML表格渲染代码
自动递增的s.no直接在PHP遍历的时候计数即可,无需数据库处理:
<table> <thead> <tr> <th>s.no</th> <th>Cell Name 1</th> <th>Car dept</th> <!-- 其他表头按需求补充 --> </tr> </thead> <tbody> <?php $serial_num = 1; // 遍历查询结果 while ($row = oci_fetch_assoc($statement)) { ?> <tr> <td><?php echo $serial_num++; ?></td> <td><?php echo htmlspecialchars($row['CELL_NAME']); ?></td> <td><?php echo htmlspecialchars($row['DEPT_NAME']); ?></td> <!-- 其他字段对应输出即可 --> </tr> <?php } // 释放资源、关闭连接 oci_free_statement($statement); oci_close($conn); ?> </tbody> </table>
注意事项
- Oracle查询返回的字段名默认是大写,所以取数组键的时候要和查询字段的大小写保持一致,也可以在SQL中给字段加小写别名避免出错
- 输出到HTML的字段要做转义处理,避免XSS安全问题
内容的提问来源于stack exchange,提问作者Fademay Darkness
相关产品推荐
相关产品推荐

