2012-02-08 3 views
3

私はPHPを使用してサーバー側でGoogleグラフのデータテーブルにデータを取り込もうとしました。JSONファイルが正しく表示されましたが、グラフはクライアントアプリケーションに表示されません。エラーが発生しました軸#0のデータ列は、文字列にすることはできません。私のコーディングは以下の通りです。データベースからデータをフェッチした後軸#0のデータ列は、文字列エラーGoogleの図表

$colarray=array(array("id"=>"","label"=>"userid","pattern"=>"","type"=>"number"),array("id"=>"","label"=>"name","pattern"=>"","type"=>"string")); 

    $final=array(); 
    for($i=0;$i<$rows;$i++) 
    { 
    $id[$i]=pg_fetch_result($res1,$i,'id'); 
    $name[$i]=pg_fetch_result($res1,$i,'name'); 
    $prefinal[$i]=array("c"=>array(array("v"=>$name[$i]),array("v"=>$name[$i]))); 
    array_push($final,$prefinal[$i]); 
    } 


    $table['cols']=$colarray; 
    $table['rows']=$final; 
    echo json_encode($table); 

マイ出力JSON:この問題を解決する方法

{ 
    "cols":[ 
    {"id":"","label":"userid","pattern":"","type":"number"}, 
    {"id":"","label":"name","pattern":"","type":"string"} 
    ], 
    "rows":[ 
    {"c":[{"v":"101"},{"v":"Aircel"}]}, 
    {"c":[{"v":"102"},{"v":"Srini"}]}, 
    {"c":[{"v":"103"},{"v":"Tamil"}]}, 
    {"c":[{"v":"104"},{"v":"Thiyagu"}]}, 
    {"c":[{"v":"105"},{"v":"Vasan"}]}, 
    {"c":[{"v":"107"},{"v":"Senthil"}]}, 
    {"c":[{"v":"108"},{"v":"Sri"}]}, 
    {"c":[{"v":"109"},{"v":"Docomo"}]}, 
    {"c":[{"v":"106"},{"v":"Innodea"}]} 
    ] 
} 

答えて

6

useridのタイプをnumber ...と指定しますが、問題の原因となる文字列を渡します。 @のsajalの正確な答えに拡張するには

{ 
    "cols":[ 
    {"id":"","label":"userid","pattern":"","type":"number"}, 
    {"id":"","label":"name","pattern":"","type":"string"} 
    ], 
    "rows":[ 
    {"c":[{"v":101},{"v":"Aircel"}]}, 
    {"c":[{"v":102},{"v":"Srini"}]}, 
    {"c":[{"v":103},{"v":"Tamil"}]}, 
    {"c":[{"v":104},{"v":"Thiyagu"}]}, 
    {"c":[{"v":105},{"v":"Vasan"}]}, 
    {"c":[{"v":107},{"v":"Senthil"}]}, 
    {"c":[{"v":108},{"v":"Sri"}]}, 
    {"c":[{"v":109},{"v":"Docomo"}]}, 
    {"c":[{"v":106},{"v":"Innodea"}]} 
    ] 
} 
10

:あなたのコードの最後の行を変更する - :

私は逆の問題で30分を無駄に...

あなたの出力JSONは次のようになります。 From:

echo json_encode($table); 

へ:

echo json_encode($table, JSON_NUMERIC_CHECK); 

これはjson_encodeに数字を認識させ、引用符で囲むのを止めるようにします(PHP 5.3.3以降で利用可能です)。 http://php.net/manual/en/json.constants.php#constant.json-numeric-check

1

BarChartでは、列の1つ(2番目)は数字でなければなりません。このエラーメッセージが表示されることがあります。

+0

これはコメントであり、回答ではありません。 – mickmackusa

+0

私はそれをもっと解答するように編集しました。私はそれがOPの問題の特定のコードに答えることはできないので、そのように表現していましたが、「エラーの原因は何か?エラー - 軸#0のデータ列は文字列ではありません」 ? " – Noumenon

1

drawChart()関数では、おそらくgoogle.visualization.arrayToDataTableを使用していますが、これはnullを許可しません。その後、このエラーを克服することができます

data: [ 
    ["string", "string"], //first Column 
    ["string1", number], 
    ["string2", number], 
    ["string3", number], 
] 

:データフォーマットは以下のようにする必要があります場合は、明示的に

0

をAddColumn関数機能を使用してください。

関連する問題