2017-09-06 2 views
1

이전에 Ajax를 사용하여 Google 차트 (파이 차트)를 그렸고 차트가 2 열만 포함되어 있기 때문에 차트를 표시 할 수 있습니다.세로 막 대형 차트의 json 출력을 다시 포맷하는 방법은 무엇입니까?

이제 저는 이와 같은 기둥 형 차트를 그려 보겠습니다. 쿼리는 JSON 출력으로 코딩

$sql = "Select count(application_id) as count, application_status, category_group from mdl_local_jobs_application 
inner join mdl_local_jobs_job on mdl_local_jobs_application.application_jobid = mdl_local_jobs_job.job_id 
left join mdl_local_jobs_category on mdl_local_jobs_job.job_categoryid = mdl_local_jobs_category.category_id 
left join mdl_cohort_members on mdl_local_jobs_application.application_applicantid = mdl_cohort_members.userid 
left join mdl_local_cohortrole on mdl_cohort_members.cohortid = mdl_local_cohortrole.cohortid 
left join mdl_role on mdl_local_cohortrole.roleid = mdl_role.id where shortname = 'graduates' 
group by application_status, category_group"; 

이 사용 :

{ "cols": [ {"id":"","label":"STATUS","pattern":"","type":"string"}, {"id":"","label":"CATEOGRY","pattern":"","type":"string"}, {"id":"","label":"TOTAL","pattern":"","type":"number"} ], "rows": [ {"c":[{"v":"0","f":null},{"v":"Accounting/Finance","f":null},{"v":2,"f":null}]}{"c":[{"v":"0","f":null},{"v":"Engineering","f":null},{"v":1,"f":null}]} ] } 
:이 출력

$result_rows = mysql_num_rows($query); 
$row_num = 0; 

//loop fetching the query into json format 
while ($result = mysql_fetch_array($query)) 
{ 
$row_num++; 
if ($row_num == $result_rows){ 
    echo "{\"c\":[{\"v\":\"" . $result['application_status'] . "\",\"f\":null},{\"v\":\"" . $result['category_group'] . "\",\"f\":null},{\"v\":" . $result['count'] . ",\"f\":null}]}"; 
} else { 
    echo "{\"c\":[{\"v\":\"" . $result['application_status'] . "\",\"f\":null},{\"v\":\"" . $result['category_group'] . "\",\"f\":null},{\"v\":" . $result['count'] . ",\"f\":null}]}"; 
} 
} 


echo " ] }"; 

column chart

내 SQL 쿼리입니다

그러나이 출력은 Google 차트에서 읽을 수 없습니다. 이것은 오류입니다.

Error: Invalid JSON string: { "cols": [ {"id":"","label":"STATUS","pattern":"","type":"string"}, {"id":"","label":"CATEOGRY","pattern":"","type":"string"}, {"id":"","label":"TOTAL","pattern":"","type":"number"} ], "rows": [ {"c":[{"v":"0","f":null},{"v":"Accounting/Finance","f":null},{"v":2,"f":null}]}{"c":[{"v":"0","f":null},{"v":"Engineering","f":null},{"v":1,"f":null}]} ] } 

내 질문 : 어떻게 열 차트의 출력을 얻으려면 코드를 다시 포맷 하시겠습니까? 각 행의 마지막에 쉼표를 추가 할 수

답변

0

필요 ...

if ($row_num == $result_rows){ 
    echo "{\"c\":[{\"v\":\"" . $result['application_status'] . "\",\"f\":null},{\"v\":\"" . $result['category_group'] . "\",\"f\":null},{\"v\":" . $result['count'] . ",\"f\":null}]},"; // <-- add comma 
} else { 
    echo "{\"c\":[{\"v\":\"" . $result['application_status'] . "\",\"f\":null},{\"v\":\"" . $result['category_group'] . "\",\"f\":null},{\"v\":" . $result['count'] . ",\"f\":null}]},"; // <-- add comma 
} 
+0

덕분에 @WHiteHat. 당신의 대답이 내 문제의 절반을 해결했습니다. json 문자열이 올바른 형식으로되어있어 오류가 사라졌습니다. 필자는 꺾은 선형 차트의 쉼표 형식이 쉼표를 사용하지 않아도되는 이유를 모르겠습니다. 라벨 유형을 변경했지만 차트가 올바르게 표시되지 않습니다. 여기에 또 다른 질문을 던졌습니다. https : //stackoverflow.com/questions/46083389/how-to-make-sql-query-to-get-the-sum-of-specific-column ... 도와 주시면 감사하겠습니다. 당신의 지식을 공유하십시오. 문제 해결에 도움을 주신 것에 대한 감사합니다. 나는 이미 당신의 대답을 받아들입니다. – joun

관련 문제