2012-10-03 1 views
1

주식이 속한 주 산업 분야 및 하위 분야를 포함하는 주식 정보가있는 MySQL 테이블이 있습니다 (예 : Coca-Cola 주식은 산업 부문 "소비재"및 하위 부문 "음료 - 청량 음료"에 속합니다) .레벨을 가진 PHP 배열을 분해하는 방법?

$SQL = "SELECT name, industrysector, subsector FROM Stocks WHERE economic_indicator_type = 'Stock' GROUP BY industrysector, subsector, name"; 
$result = mysql_query($SQL) or die ("Error in query: $SQL. " . mysql_error()); 

while ($row = mysql_fetch_row($result)) { 

$stocks[$i]['name'] = $row[0]; 
$stocks[$i]['industrysector'] = $row[1]; 
$stocks[$i]['subsector'] = $row[2]; 

$i++; 
} 

$stocksTotals = array(); 

foreach($stocks as $amount) { 
    $stocksTotals[$amount['industrysector']] = $stocksTotals[$amount['industrysector']].", ".$amount['name']; 
} 

foreach($stocksTotals as $name => $amount) { echo $name.": ".substr($amount,1)."<br>"; } 

내 문제는 내가 코드가 세 번째 수준을 처리 할 수 ​​없다는 것입니다. 나는 산업 분야의 모든 첫 번째 출력 (예를 들어, 기본 재료), 모든 하위 분야 (기본 자료로 원하는 예를 들어,) 각 부문에 해당하는 주식의 이름을 입력하십시오.

현재 나는 산업 부문과 주식을 보유하고 있습니다. 배열 처리 코드에서 이것을 처리하는 방법을 알아 봅니다.

어떤 조언을 주시면 감사하겠습니다. 더 나은 참조를 위해 여기에 이미지를 놓았습니다 (http://imageshack.us/photo/my-images/853/mysqltophp.gif/).

감사합니다.

답변

0

foreach 루프는 다음과 같이 할 필요가 :

//considering you want the value as "$amount['industrysector'], $amount['name']" 
foreach($stocks as $amount) { 
// $stocksTotals[$amount['industrysector']] = $amount['industrysector'] .", ".$amount['name']; 
    echo $amount['industrysector'].": "."$amount['industrysector'], $amount['name']"."<br>"; 
} 

가 다른 foreach 루프를 필요 없어요.

편집 : 당신은, 당신도 당신의 행을 가져 오는 방식을 변경

while ($row = mysql_fetch_assoc($result)) { 
    $stocks[$i]['name'] = $row['name']; 
    $stocks[$i]['industrysector'] = $row['industrysector']; 
    $stocks[$i]['subsector'] = $row['industrysector']; 
    $i++; 
} 



foreach($stocks as $amount) { 
$output = "$amount['industrysector'] : $amount['industrysector'], $amount['subsector']"; 
if($amount['name'] !== '') 
    $output .= "<br>" . $amount['name']; 
"; 
} 
+0

멋진 대답을해야합니다! 매력처럼 작동합니다! :-) (나는 안타깝게도 투표를 할 수 없도록 초보자이다). 마지막 (까다롭게) 질문 : 나무를 더 많이 만들 수있는 방법에 대한 팁. 산업 분야를 한 번만 출력하고 하위 분야는 해당 재고가있는 경우에만 출력하십시오. – Patrik

+0

해당 주식의 의미는'economic_indicator_type = 'Stock''입니까? –

+0

나는 트리 모양과 같은 의미를 추측하여 내 대답을 편집하여 도움이되기를 바랍니다. –