我有一个看起来很简单的问题,但我只是想问你如何解决它:
在 MySQL 表中有以下结构:
provider artist
a 1
a 2
a 3
b 4
现在需要在 HTML 中回显一个列表,例如:
provider a
1
2
3
provider b
4
我停留在我想对结果进行分组并用for-each
and while
loop.
主要思想很简单,例如:
<?php $query = mysqli->query("SELECT * FROM `table` GROUP by provider");
foreach GROUP {?>
echo some styling HTML-code for each group of headline;
<?php while ($data= $query->fetch_assoc()){?>
echo some styling HTML-code for each list-item;
<?php};?>
提前致谢。
UPDATE:
谢谢回答。
RiggsFolly 的解决方案似乎运行良好。 HTML 有一个小问题。在该行中添加 HTML 代码时,周围有一个 div 标签不会关闭:
echo 'provider '. $data->provider;
问题是 while 循环需要在 div 中。每个都缺少结束 div 标签
if ( $current_provider != $data->provider ) {
这是原始 HTML 代码:
<?php
$service = $db->query("SELECT * FROM `system` ORDER BY provider, artist");
$current_provider = NULL;
while ($data = $service->fetch_object()) {
if ( $current_provider != $data->provider ) {// new provider?>
<div class="service">
<p class="lower">
<?php echo $data->provider;?>
</p>
<?php
$current_provider = $data->provider;
}?>
<a href='?artist=<?php echo $data->artist;?>'><?php echo "/".$data->artist;?</a><br/>
<?php };?>
</div><!--service -->
列表项将很好地显示。但是,当查看源代码时,您会发现结束 div 标签丢失了。谢谢
亲切的问候。