PHP ve MySQL kullanarak gruplandırılmış / Katmanlı Raporları

1 Cevap php

PHP ve MySQL kullanarak gruplandırılmış / tabakalı raporu oluşturmak için çalışıyorum.

tbl_items aşağıdaki alanlar bulunur: (1) UserName ve (2) ItemName

Tek bir kullanıcı listede birden fazla öğe olabilir.

Ben veriler, her kullanıcı tarafından tabakalı bir çıktı oluşturmak istiyoruz. Örneğin:

*UserName #1
-ItemName 1
-ItemName 2
*UserName #2
-ItemName 3
*UserName #3
-ItemName 4
-ItemName 5

Ben bir döngü içinde bir döngü koymak için çalışırken, kodu ile oynamaya devam ... ama bunu nasıl anlamaya olamaz! Bu ben bugüne kadar ne var:

<?
$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>

Lütfen yardım edin!

1 Cevap

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'];
    }
}

Bu ilk adı tarafindan bir dizi oluşturur. Bu, her kullanıcının kullanıcıya atanmış öğeleri bir dizi içeren dizideki bir öğe anlamına gelir.

Sonra, biz her kullanıcı gidin ve tüm öğeleri yazdırın.