You need to enable JavaScript to run this app. PHP使用Oracle数据库获取指定行列数据并按分类渲染到HTML表格
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 09:21:03