将mysql检索的数据拆分为标题和行

时间:2015-07-15 22:17:34

标签: php html mysql database html-table

我从DB检索数据,我需要在表格中插入所有数据。 我有一些常量标题,其中一些取决于查询结果。

下面你可以看到一张桌子;我希望它看起来像: enter image description here

我确实准备了HTML结构:

<table class="table-fill">
<thead>
<tr>
    <th>ID</th>
    <th>CODE</th>
    <th colspan=2>TREND A</th>      
    <th colspan=2>TREND B</th>
    <th colspan=2>TREND C</th>
</tr>
<tr>
    <th></th>
    <th></th>
    <th>Items</th>
    <th>Revenue</th>
    <th>Items</th>
    <th>Revenue</th>
    <th>Items</th>
    <th>Revenue</th>
</tr>
</thead>
<tbody class="table-hover">
<tr>
   <td>1</td>
   <td>A</td>
   <td>10</td>
   <tD>150</td>
   <td>5</td>
   <tD>200</td>
   <td>8</td>
   <tD>120</td>
</tr>
</tbody>

到目前为止没问题。困难的部分是使用来自DB的实际数据并将它们插入表中。

标题&#34;趋势&#34;,&#34;趋势b&#34;等等不是常数。以下表格将显示在不同的国家/地区。一些国家/地区具有特定趋势名让我们说英格兰有&#34;趋势A&#34;,&#34;趋势B&#34;和&#34;趋势D&#34;。意大利只有&#34;趋势A&#34;等

是否可以编写php代码并以某种方式根据查询结果自动生成表头?

然后按趋势拆分结果,以便正确的值能够纠正趋势?

我知道如何做一个简单的表格,如:

$sql_r = "SELECT o.id, o.code, tl.name, ts.items, ts.revenue
          FROM overview o, trend_stats ts, trend_lang tl           
                    WHERE o.id_shop = '1'
                    AND o.id = ts.id
                    AND ts.id_trend = tl.id_trend";
$data_to_output = Db::getInstance()->ExecuteS($sql_r);

foreach ($data_to_output as $data) {
    echo '
        <tr>
        <td>'.$data['id'].'</td>
        <td>'.$data['code'].'</td>
        <td>'.$data['trend'].'</td>
        <td>'.$data['items'].'</td>
        <td>'.$data['revenue'].'</td>
        </tr> 
    ';    
}

但我不确定如何以我希望的方式分割和构建它们。如果有任何教程或任何在线内容与我所要求的相关,我很高兴看到它。谢谢

1 个答案:

答案 0 :(得分:0)

除了重写标题之外,我认为你不能做到这一点。您想从数据库中检索信息这一事实告诉您必须使用任何类型的循环。因此,您首先必须显示标题,然后显示您的信息。唯一的方法是在循环中的某处存储将在更改时更改标题的值,并在值实际更改时添加另一行标题。只需简单的if条件就可以做到这一点。