2012-04-30 3 views
7

동적 데이터 (데이터베이스에서 검색 한 값)로 하이 차트를 처리하고 있습니다. 내가 테이블에서 다음 데이터를 검색 할 수 있었다 쿼리를 작성하여 나는 다음과 같은 구조에서 위의 정보를 저장하고json_encode 사용 방법

[{ name:'pen', data: [5,7]},{ name:'pencil', data: [4,20]},{ name:'eraser', data: [6,43]}]"; 

내가 원하는 다른 페이지로 전달하려는

Item 2011 2012 
pen  5  7 
pencil 4  20 
eraser 6  43 

위의 데이터를 드릴 다운 하이 차트로 푸시하십시오.

이 형식으로 생성 할 수있는 방법이 있습니까? json_encode를 사용해 보았지만 성공하지 못했습니다. json_encode를 사용하여이 문제를 해결할 수 있습니까?

나는이 방법

while($row = mysql_fetch_assoc($result)) 
    { 
    $rows[]= $row; 

    } 
echo json_encode($rows); 

에 노력하고 데이터베이스 결과를 통해

[{"Item":"pen","2011":"5","2012":"7"},{"Item":"pencil","2011":"4","2012":"20"},{"Item":"eraser","2011":"6","2012":"43"}] 
+2

'json_encode' 인코딩 JSON하지가 있습니다 자바 스크립트 객체 표현식 (따옴표없는 키). 그것은 중요하지 않습니다. – mario

+2

데이터를 직렬화하는 것이 더 나은 접근 방법 인 것처럼 보입니다. – nickb

+1

@ JohnConde 일부 정보를 업데이트했습니다. 체크 아웃 – Anil

답변

17

json_encode은 배열을 JSON 형식으로 변환하는 편리한 방법입니다. 제공 한 결과를 얻으려면 배열 배열이 필요합니다. 각 서브 어레이는 키 "이름"과 "데이터", "이름"는 항목 컬럼이며, "데이터"다른 2,011의 값을 포함하는 어레이 및 2012

$results = mysql_query("..."); 
$arr = array(); 

while ($row = mysql_fetch_assoc($results)) 
{ 
    $name = $row['Item']; 
    $data = array($row['2011'], $row['2012']); 

    $arr[] = array('name' => $name, 'data' => $data); 
} 

echo json_encode($arr); 
3
  1. 루프를 가지고와 배열
  2. JSON 인코딩에 결과를 넣었습니다 업데이트 배열