我正在尝试使用PHP和MySQL生成分组/分层报告。
tbl_items具有以下字段:(1)用户名和(2)ItemName
一个用户可以列出多个项目。
我想生成一个输出,其中每个用户对数据进行分层。例如:
*用户名#1
-ItemName 1
-ItemName 2
*用户名#2
-ItemName 3
*用户名#3
-ItemName 4
-ItemName 5
我一直在玩代码,试图将一个循环放到一个循环中……但是却不知道该怎么做!这是我到目前为止所拥有的:
<?
$sql="SELECT * FROM $tbl_items";
$result=mysql_query($sql);
?>
<html>
<body>
<? php while($rows=mysql_fetch_array($result)){ ?>
Item: <? echo $rows['ItemName']; ?> (<? echo $rows['UserName']; ?>)
<?php } mysql_close(); ?>
</body>
</html>
请帮忙!
最佳答案
while($row=mysql_fetch_array($result))
{
$itemsByUser[$row['UserName']][] = $row;
}
foreach($itemsByUser as $user => $items)
{
echo $user . "<br>";
foreach($items as $array)
{
echo "-" . $array['ItemName'];
}
}
这首先创建一个按用户名排序的数组。这意味着每个用户在数组中都有一个元素,该元素包含已分配给该用户的项目的数组。
然后,我们遍历每个用户并打印出所有项目。
关于php - 使用PHP和MySQL的分组/分层报表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2215844/