-2

私は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
                    }
                ]
            }
        ]

皆さんが質問を理解してくれることを願っています。

4

2 に答える 2

2

PHP を初めて使用する場合はarrayPHP のマニュアルを読む必要があります。

次に、このような配列を定義できます

$arr = array(
   array(
       'section_name' => 'Section A',
       'data => array(
          array('value' => 2),
          array('value' => 0),
        )
   ),
  )
   //... other section

次に、jsonを出力しますecho json_encode($arr);

于 2016-02-23T11:16:09.523 に答える
1

[]配列および{"a": ..}連想配列に使用されます。この 2 つを組み合わせると、この json 構造を簡単に作成できます。

array(
    array(
        "section_name" => "Section A",
        "data" => array(
            array("value" => "2"),
            array("value" => "0"),
        )
    ),
    // ...
)

を使用json_encodeすると、必要な結果が得られます。

于 2016-02-23T11:09:45.533 に答える