2013-08-28 4 views
0

나는 테이블을 가지고 :가입 테이블 데이터

id title  type expl bubble_content onfocus req dorder label mirror 
1 Fullname 1  1  Your fullname Yes  0  0  0  NULL 

다음의 다른 테이블 : 결과가 될 수 있도록 내가 두 테이블을 조인 할 방법

id  fieldid relid dorder 
4  1   2  0 
5  1   1  0 

뭔가 같은 :

0 => array(
    'id' => 1, 
    'title' => 'Fullname', 
    .... etc .... 
    'relid' => 2, 
    'relid' => 1), 
1 => array(
    .... etc .... 
)) 

나는 INNER JOIN/LEFT JOIN을 사용해 보았습니다.하지만 이것은 각 relid에 대해 두 행/배열을 생성합니다. 저는 정말로 리가됩니다. 특정 fieldid에 대한 모든 데이터가 위의 그림과 같이 동일한 배열에 존재해야합니다.

+0

당신은 두 개의 동일한 키 배열을 가질 수 없습니다, 그건 말이 안돼. –

+0

테이블에 어떻게 가입하고 있습니까? 값 1과 2는 어디에서 오는 것입니까? –

+0

@JakubKania 분명히. 나는 그들과 합치려면 SQL – Kieran

답변

1

배열에 같은 이름의 키가 두 개있을 수 없습니다. 귀하의 예제에서 2 'relid', 두 번째는 첫 번째 덮어 씁니다.

$output = array(); 
    while ($row = mysql_fetch_assoc($result)) 
    { 
     // Capture all values for this row first. 
     // If this is the new row from the first table, store. 
     if (!isset($output[$row['id']])) 
     { 
      $output[$row['id']] = $row; 

      // Make a new array for relids. 
      $output[$row['id']]['relids'] = array(); 
     } 


     $output[$row['id']]['relids'][] = $row['relid']; 

    } 

귀하의 출력 배열은 다음과 같이 표시됩니다 : 그것은 하나에 해당 행을 병합 있도록

당신은 PHP를 코딩 할 수 있습니다

0 => array(
'id' => 1, 
'title' => 'Fullname', 
.... etc .... 
'relids' => array(2, 1), 
1 => array(
.... etc .... 
))