2009-12-11 5 views
0

나는 판매에서 라인 항목을 나타내는 데이터베이스의 일부 행을 가지고 있습니다. 각 광고 항목에는 다음과 같은 5 개의 열이 있습니다.PHP의 관련 항목 그룹화

  • id : 기본 키.
  • sale_id :이 라인 항목이 (Sales 테이블의 외래 키) 부분입니다.
  • product_id :이 항목은 (Products 테이블의 외래 키)에 해당합니다.
  • 그룹 :이 항목이 속한 라인 - 아이템 그룹.
  • is_subitem :이 광고 항목이 하위 항목인지 여부입니다. 동일한 group 값을 가진 광고 항목의 그룹에 대해 정확히 하나의 '거짓'값이있을 수 있습니다.
나는 목록을 생성하는 특정 sale_id에 대한 이상 모든 행을 반복하고 싶은

: 동일한 group

  • 광고 항목 그것에 대해 is_subitem == false와 함께
  • 개별 항목을 연관됩니다 그룹이 먼저 나타납니다

어떻게하면 쉽게 데이터 구조를 만들 수 있으며 원하는대로 반복 할 수 있습니까?

답변

1

이와 비슷한 기능이 작동 할 수 있습니다. 테스트하지 않았습니다.


$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; 
    } 
} 
0

위의 내용을 몇 번 편집했지만 지금은 꽤 좋았습니다.

+0

이 발언을 위해 새로운 대답을 만들 필요는 없습니다. 편집 된 답변에 넣으십시오. Btw 'above'는 'newest'로 답변을 정렬하면 불필요 해집니다.) –

+0

Thanks Felix - 전 신작예요. – Anon

관련 문제