2012-10-27 4 views
0

I MySQL의 쿼리를 실행하고 배열로 결과를 반환 다음 PHP 코드를 가지고이의배열 항목을 이름으로 구분 기호로 결합 하시겠습니까?

function mysql_resultTo2DAssocArray ($result) { 
    $i=0; 
    $ret = array(); 
    while ($row = mysql_fetch_assoc($result)) { 
     foreach ($row as $key => $value) { 
      $ret[$i][$key] = $value; 
      } 
     $i++; 
     } 
    return ($ret); 
    } 
$compare = mysql_resultTo2DAssocArray(mysql_query("SELECT Temp.School, Temp.Status, Snow.Token FROM Temp 
JOIN Snow ON Temp.School = Snow.School")); 

결과이 같이 :

Array 
(
    [0] => Array 
     (
      [School] => School Name 1 
      [Status] => Delayed Two Hours 
      [Token] => Token1 
     ) 

    [1] => Array 
     (
      [School] => School Name 1 
      [Status] => Delayed Two Hours 
      [Token] => Token2 
     ) 

) 

는 것이 가능 Token 항목을 결합하는 것입니다 해당 배열의 쉼표로 쉼표로 구분하면 School 항목이 각각 동일합니까?

하나의 사실은 전역 배열 내에 다른 School 이름을 가진 더 많은 배열이있을 수 있다는 것입니다. 그 배열은 그룹화되어서는 안되지만 남겨져 있어야합니다. 기본적으로 School이 같은 경우에만 그룹화 할 수 있습니까? 또한 두 개 이상의 토큰이있을 수도 있습니다. Status 열 응집 또는 GROUP BY의 일부가 아니므

답변

2
SELECT Temp.School, Temp.Status, GROUP_CONCAT(Snow.Token) Tokens 
FROM Temp JOIN Snow USING (School) 
GROUP BY Temp.School 

이 완전히 유효하지 않다; 그러나 MySQL은 일반적으로 허용합니다 (허용하지 않는 옵션이 있습니다. 이름은 기억하지 않습니다). 상태 값이 다른 행이 있으면 임의로 선택합니다. 당신은 다른 상태로 어떤 일이 일어나야하는지 말하지 않았습니다.

관련 문제