Я новичок в PHP, я хочу сгенерировать код JSON, как это
[{"section_name": "Section A","data": [{"value": "2"},{"value": "0"}]}, {"section_name": "Section 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
}
]
}
]
Надеюсь, вы, ребята, понимаете вопрос.
Если вы новичок в PHP, вы должны прочитать array
в Руководство по PHP.
Затем вы можете определить массив, как это
$arr = array(
array(
'section_name' => 'Section A',
'data => array(
array('value' => 2),
array('value' => 0),
)
),
)
//... other section
Затем выведите JSON echo json_encode($arr);
[]
используется для массива и {"a": ..}
для ассоциативных массивов. Комбинируя эти два вместе, вы можете легко создать эту структуру JSON.
array(
array(
"section_name" => "Section A",
"data" => array(
array("value" => "2"),
array("value" => "0"),
)
),
// ...
)
С помощью json_encode
дает желаемый результат.