【问题标题】:PHP build html table with idPHP构建带有id的html表
【发布时间】:2018-07-16 23:49:01
【问题描述】:

我使用 PHP (Laravel) 和 MySQL。

当我从数据库中查询数据时,我得到以下结果:

第一列是id。第二列是目标表中的列,第三列是有效数据。 应为每个 id 创建一行,并将数据写入指定的列。如果没有数据,则不应执行任何操作。 我写了一个@foreach 循环。但它为每个条目写了一行:

目标是表格如下所示:

我希望我已经足够好地描述了我的问题。 谢谢

【问题讨论】:

  • 在问题中添加代码。
  • 你是如何用不同的数据重复 id 的?我怀疑您的查询从偏移量来看是错误的。

标签: php laravel html-table


【解决方案1】:

首先,您需要从数据中筛选数据,以便您可以轻松地将其打印到表格中。我在这里用php给你例子;您可以轻松地使用相同的逻辑来处理 laravel。

<?php
$data = array(
    array('id' => 1, 'col' => 'a', 'data' => 'X'),
    array('id' => 2, 'col' => 'a', 'data' => 'Y'),
    array('id' => 2, 'col' => 'b', 'data' => 'Z'),
    array('id' => 3, 'col' => 'a', 'data' => 'X'),
    array('id' => 3, 'col' => 'b', 'data' => 'Y'),
    array('id' => 3, 'col' => 'c', 'data' => 'Z'),
);

$filterData = array();
foreach ($data as $key => $val) {
    $filterData[$val['id']][$val['col']] = $val['data'];
}

$html = '<table border="1">';
$html .= '<tr><th>id</th><th>a</th><th>b</th><th>c</th></tr>';
if(!empty($filterData)) {
    foreach ($filterData as $kData => $value) {
        $a = isset($value['a']) ? $value['a'] : '';
        $b = isset($value['b']) ? $value['b'] : '';
        $c = isset($value['c']) ? $value['c'] : '';
        $html .= '<tr><td>'.$kData.'</td><td>'.$a.'</td><td>'.$b.'</td><td>'.$c.'</td></tr>';
    }
} else {
    $html .= '<tr><td colspan="4">No record found!</td></tr>';
}

echo $html;

【讨论】:

  • 太棒了!标记答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多