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

如何用PHP连接Access数据库分组同列数据并在网页表格展示

按Access数据库Line列分组展示多表格数据的PHP实现

问题描述

我有一个Access数据库表,数据示例如下:

-------------------------------
ID      POperator      Line
1          Jhon         A
2          David        B
3          Jacob        A
-------------------------------

希望在网页中按Line列的相同值分组,以多个表格形式展示,效果如下:

-------------------------------
LINE A DATA
ID POperator         Line
1     Jhon            A
3     Jacob           A

LINE B DATA
ID POperator     Line
2   David         B
------------------------------------

目前我通过ODBC连接Access的代码如下:

$db = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=".$db."",$user,$password);

$result = odbc_exec($db,"select PTime,PSample,PRemarks,PLine,POperator from POV WHERE PDate= #".$current_date."# ORDER BY PLine ASC");

需要修改逻辑或编写PHP代码实现按Line分组展示的效果。

解决方案

实现思路

  1. 分组处理查询结果:将数据库返回的结果按PLine字段归集,把同一Line的数据存入同一个数组键下。
  2. 循环渲染分组表格:遍历分组后的数组,为每个Line单独生成标题和表格,输出到网页。

完整代码示例

<?php
// 数据库连接(保留原有连接逻辑)
$db = odbc_connect("Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=".$db."",$user,$password);
// 补充ID字段并保持按PLine排序
$result = odbc_exec($db,"select ID, POperator, PLine, PTime, PSample, PRemarks from POV WHERE PDate= #".$current_date."# ORDER BY PLine ASC");

// 初始化分组存储数组
$groupedData = [];

// 遍历结果集,按PLine分组数据
while ($row = odbc_fetch_array($result)) {
    $line = $row['PLine'];
    if (!isset($groupedData[$line])) {
        $groupedData[$line] = [];
    }
    $groupedData[$line][] = $row;
}

// 输出分组后的表格内容
foreach ($groupedData as $line => $rows) {
    // 输出分组标题
    echo "<h3>LINE {$line} DATA</h3>";
    // 生成表格
    echo "<table border='1' cellpadding='4' cellspacing='0'>";
    // 输出表头
    echo "<tr>";
    foreach (array_keys($rows[0]) as $header) {
        echo "<th>{$header}</th>";
    }
    echo "</tr>";
    // 输出表格数据行
    foreach ($rows as $row) {
        echo "<tr>";
        foreach ($row as $value) {
            echo "<td>{$value}</td>";
        }
        echo "</tr>";
    }
    echo "</table><br>";
}

// 关闭数据库连接
odbc_close($db);
?>

代码说明

  • 原查询补充了ID字段(匹配示例数据需求,可根据实际查询字段调整);
  • 使用odbc_fetch_array将每行数据转为关联数组,方便按字段名操作;
  • 分组数组$groupedData以Line值为键,对应存储该Line下的所有数据行;
  • 表格默认添加了基础边框和内边距,可通过CSS自定义样式优化展示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:42:37