PHP ile ilgili öğeleri gruplandırma

2 Cevap php

Ben bir satış satır öğeleri temsil eder bir veritabanında bazı satırlar var. Her satır öğesi beş sütun vardır:

  • id: Birincil anahtar.
  • sale_id: Bu satır öğesi (a Sales tablosuna bir yabancı anahtar) bir parçası olduğunu satışı.
  • product_id: Bu madde (a Products tablosuna bir yabancı anahtar) karşılık gelen ürün.
  • grubu: Bu madde bir parçası olan line-öğeleri grubudur.
  • is_subitem: Bu satır öğesi bir alt öğesi olup olmadığı. Aynı group değerine sahip kalemlerin herhangi bir grup için burada tam olarak bir "yanlış" bir değeri var garantilidir.

Belirli bir sale_id bir liste üretmek için nereye tüm satırlar üzerinde yineleme yapmak istiyorum:

  • aynı group değerleri ile satır öğeleri birlikte ilişkilidir
  • bu grup için is_subitem == false ile satır öğesi ilk göründüğünde

Bunu nasıl kolaylaştırır ve ben isterdim şekilde yineleme bir veri yapısını oluşturabilir?

2 Cevap

Böyle bir şey ben henüz denemedim .. çalışabilir.


$data = array();
$result = mysql_query( $your_query_here );

while( $row = mysql_fetch_assoc( $result ) )
{
    if( !isset( $data[$row['group']] ) )
    {
        $data[$row['group']] = array();
    }

    if( false == $row['is_subitem'] )
    {
        // when subitem is false we put the item at at the front of the array by unshifting it.
        array_unshift( $data[$row['group']], $row );
    }
    else
    {
        // else we just add the row to the end.
        $data[$row['group']][] = $row;
    }
}

Ben birkaç kez yukarıdaki düzenlenmiş ama şimdi oldukça iyi olmalıdır.