Как получить формат JSON в Stack Overflow

[{«section_name»: «Раздел A», «data»: [{«value»: «2»}, {«value»: «0»}]}, {«section_name»: «Раздел B», «data «: [{» value «:» 1 «}, {» value «:» 0 «}]}]

В этом я извлекаю "section_name","value" из базы данных.

Здесь концепция заключается в получении значений из базы данных для отображения гистограммы, основанной на классах и разделах.

Но мой шаблон, который я выбрал, я должен получить значения (количество учеников в классе & раздел) для отдельных разделов, как показано на диаграмме ниже.

Мой код PHP:

$result1 = mysql_query("select class_name as label from class ") or     die(mysql_error());

while($row1 = mysql_fetch_assoc($result1))
{
$rows1[] = $row1;
}
$data1 = json_encode($rows1);

$result2 = mysql_query("select s.section_name as sectionname, 'data' as data from section s") or die(mysql_error());

$result3 = mysql_query("select (select count(*)as c from student_status ss where ss.section_id=s.section_id and ss.class_id=c.class_id) as value from section s, class c order by s.section_name asc ") or die(mysql_error());

if(mysql_num_rows($result2) > 1)
{
while($row2 = mysql_fetch_assoc($result2))
{
$rows2[] = $row2;
}
$data2 = json_encode($rows2);

while($row3 = mysql_fetch_assoc($result3))
{
$rows3[] = $row3;
}
$data3 = json_encode($rows3);

}

Мой JSON-код:

"categories": [
{
"category": <? echo $data1 ?>/*[
{
"label": "1"},
{
"label": "TWO"},
{
"label": "3"}
]*/
}
],
"dataset": /*<? echo $data2 ?>*/[
{
"sectionname": "Section A",
"data": [
{
"value": "2" //class 1
},
{
"value": "1" //class 2
}
]
},
{
"sectionname": "Section B",
"data": [
{
"value": "" //class 1
},
{
"value": ""  //class2
}
]
}
]

Я использую этот JSON в AJAX
Надеюсь, вы, ребята, понимаете вопрос.
http://i.stack.imgur.com/mlfLJ.jpg

0

Решение

Вы не можете действовать по-своему. Чтобы создать правильную строку JSON, вы можете написать этот код:

$data = array( array('category'=>$data1), array('section'=>$data2), array('category'=>$data3) );
$json = json_encode( $data );

Или — если у вас есть больше $dataN массивы — таким образом:

$data = array();

// Your first MySQL query here
$data[] = array( 'category' => $rows1 );

// Your second MySQL query here
$data[] = array( 'section' => $rows2 );

// (...)

$json = json_encode( $data );

Пожалуйста, обратите внимание:

mysql_ синтаксис устарел в PHP 5.5.0, и это было удалено в PHP 7.0.0. Вместо этого MySQLi или же PDO_MySQL расширение должно быть использовано.

(с официального сайта PHP)

0

Другие решения

Других решений пока нет …