0

SQL クエリの結果から JSON テーブルを作成したいと考えています。phpMyAdminでクエリを試してみましたが、正しいです(必要なデータを取得します)が、以下のコードを使用してJSONテーブルに変換しようとすると、結果は正しい構造のテーブルですが、値はありません.

/* select all moches from the table moches */
$query="SELECT municipio, SUM(moche) AS moche FROM moches GROUP BY municipio";
$result = $mysqli->query($query);

     $rows = array();
     $table = array();
     $table['cols'] = array(

       array('label' => 'Municipio', 'type' => 'string'),           
       array('label' => 'Cantidad total en moches', 'type' => 'number')

                );

     foreach($result as $r) {

                      $temp = array();

                      //Create the different states

                      $temp[ ] = array('v' => (string) $r['municipio']); 

                      // Total de moches

                      $temp[ ] = array('v' => (int) $r['moche']); 
                      $rows[ ] = array('c' => $temp);


                    }

      $table['rows'] = $rows;

      // convert data into JSON format
      $jsonTable = json_encode($table);
4

2 に答える 2

1

要点: 「json テーブル」などというものはありません。JSON 文字列があります。これは、javascript などの他の言語でデータ構造を表すプレーンテキスト文字列です。

問題は、mysqli の結果ハンドルをループしようとしていることです。これは通常、結果セット全体ではなく、 1行のデータです。

次のようなものが必要です。

$result = $mysqli->query($sql);

$temp = array();
while($row = $result->fetch_row()) {
    $temp[] = $row;
}
echo json_encode($temp);
于 2013-09-06T19:59:35.040 に答える