0

配列に格納されているすべての詳細を (MySQL リクエストから) 表示する PHP ページを生成する必要があります。

以下は、SQL クエリから収集されたデータセットの例です (ORDER BY Workgroup、ProductCode に構造化されています)。

+----+-------------+-------------+-----------+-----------+
| ID | ProductCode | Description | Workgroup |   Status  |
+----+-------------+-------------+-----------+-----------+
|  2 |     A123    |    Coke     |  Finance  |  Ordered  |
|  4 |     A123    |    Coke     |  Finance  |  Rejected |
|  1 |     A123    |    Coke     |  Finance  |  Rejected |
|  6 |     B111    |    Pepsi    |  Finance  |  Ordered  |
|  5 |     B111    |    Pepsi    |  Finance  |  Rejected |
|  8 |     B111    |    Pepsi    |  Finance  |  Rejected |
| 10 |     B112    |    Fanta    |  Finance  |  Ordered  |
| 42 |     A123    |    Coke     | Management|  Ordered  |
| 16 |     A123    |    Coke     | Management|  Ordered  |
| 11 |     B112    |    Fanta    | Management|  Rejected |
+----+-------------+-------------+-----------+-----------+

これらの詳細は、次のように PHP 配列に格納されています。

    Array
    (
        [0] => Array
            (
                [ID] => 2
                [ProductCode] => A123
                [Description] => Coke
                [Workgroup] => Finance
                [Status] => Ordered
            )
        [1] => Array
            (
                [ID] => 4
                [ProductCode] => A123
                [Description] => Coke
                [Workgroup] => Finance
                [Status] => Rejected
            )
             ...etc
)

私が必要としているのは、ワークグループで区切られた複数のテーブルにデータを吐き出すことです。製品ごとに 1 つの要約行があり、その下に個々の行項目がリストされています (厳密には html テーブルである必要はありません。ラインアイテムを表す)

私が示した 10 個のエントリの例から、次のように出力する必要があります。

+--------------------------------------------------------+
| FINANCE TEAM                                           |
+----+-------------+-------------+-----------+-----------+
| Coke      Total: 3     Ordered: 1     Rejected: 2      |
+----+-------------+-------------+-----------+-----------+
|  2 |     A123    |    Coke     |  Finance  |  Ordered  |
|  4 |     A123    |    Coke     |  Finance  |  Rejected |
|  1 |     A123    |    Coke     |  Finance  |  Rejected |
+----+-------------+-------------+-----------+-----------+
| Pepsi    Total: 3     Ordered: 1      Rejected: 2      |
+----+-------------+-------------+-----------+-----------+
|  6 |     B111    |    Pepsi    |  Finance  |  Ordered  |
|  5 |     B111    |    Pepsi    |  Finance  |  Rejected |
|  8 |     B111    |    Pepsi    |  Finance  |  Rejected |
+----+-------------+-------------+-----------+-----------+
| Fanta    Total: 1     Ordered: 1      Rejected: 0      |
+----+-------------+-------------+-----------+-----------+
| 10 |     B112    |    Fanta    |  Finance  |  Ordered  |
+----+-------------+-------------+-----------+-----------+

+--------------------------------------------------------+
| MANAGEMENT TEAM                                        |
+----+-------------+-------------+-----------+-----------+
| Coke      Total: 2     Ordered: 2     Rejected: 0      |
+----+-------------+-------------+-----------+-----------+
| 42 |     A123    |    Coke     | Management|  Ordered  |
| 16 |     A123    |    Coke     | Management|  Ordered  |
+----+-------------+-------------+-----------+-----------+
| Fanta      Total: 1    Ordered: 0     Rejected: 1      |
+----+-------------+-------------+-----------+-----------+
| 11 |     B112    |    Fanta    | Management|  Rejected |
+----+-------------+-------------+-----------+-----------+

必要なものが十分に明確でない場合は、さらに詳しく説明できます。

どんな助けでも大歓迎です。

前もって感謝します。

4

1 に答える 1

0

PHP の配列は、ツリーのような構造に簡単に変換できます。あなたはプログラミングの方法を知っているように聞こえるので、フルコードを送信しません。ネストされたループを処理して、より便利な形式に変換した後、最終的な html を自分で生成できると思うからです。

$tree = array();
foreach ($arr as $row) {
    extract($row);
    $tree[$Workgroup][$Description][] = $row;
}
print_r($tree);
于 2012-06-08T04:33:54.013 に答える