我从数据库中检索数据,我需要将所有数据插入到一个表中。 我有一些常量标题,还有一些取决于查询结果。
下面你可以看到一个表格;我希望它看起来像:
我确实准备了 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>
目前没问题。困难的部分是使用来自数据库的实际数据并将它们插入到表中。
标题“趋势 a”、“趋势 b”等不是常量。下表将显示在不同的国家。一些国家/地区有特定的趋势名称。假设英国有“趋势 A”、“趋势 B”和“趋势 D”。意大利只有“趋势A”等。
是否可以编写 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>
';
}
但我不确定如何按照我希望的方式拆分和构建它们。如果有任何教程或任何与我要问的内容相关的在线内容,我很乐意查看。谢谢
最佳答案
除了重写标题之外,我认为您无法做到这一点。您想要从数据库中检索信息这一事实表明您必须使用任何类型的循环。所以你首先必须显示你的标题然后显示你的信息。唯一的方法是在你的循环中的某个地方存储当它改变时会改变你的标题的值,并在值实际改变时添加另一行标题。您只需使用一个简单的 if 条件即可做到这一点。
关于php - 将 mysql 检索到的数据拆分为标题和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31442175/