2016-11-26 17 views
1

私はphpとjavascriptを使ってこのpiechart googleビジュアライゼーションに取り組んでいますが、json変換が機能するようです。cantは配列をJSONに変換するようです。

ここ

は私のPHPコードです:

$sql = "select pNavn, antallTimer from Prosjekter where userId=".$userId; 
$result = hentData($sql); 
$orders = array(array('Prosjekt navn', 'Antall Timer')); 
/* Extract the information from $result */ 
while ($rad = mysqli_fetch_assoc($result)) { 
    $temp = array($rad['pNavn'], $rad['antallTimer']); 
    array_push($orders, $temp); 
} 
$orders=json_encode($orders); 
var_dump($orders); 

私はSOにここにビットを見てきましたが、人々が言うことをconvertionは私が仕事を得るように見えるカント取り組んでいます。

json_encode(
    iconv(
     mb_detect_encoding($orders, mb_detect_order(), true), 
     'UTF-8', 
     $orders 
    ) 
) 

mb_convert_variables('utf-8', 'original encode', array/object) 

最初の配列ではなく文字列をbeeingて$ordersのエラー原因を与えるが、第二のdidntは、任意のエラーを与えるが、$ordersvar_dumpはまだ偽である:私が試してみました。

ザ・イムなっvar_dumps:私は助けを必要とするもの

array (size=5) 
0 => 
array (size=2) 
    0 => string 'Prosjekt navn' (length=13) 
    1 => string 'Antall Timer' (length=12) 
1 => 
array (size=2) 
    0 => string 'Mitt F�rste Prosjekt' (length=20) 
    1 => string '72' (length=2) 
2 => 
array (size=2) 
    0 => string 'Mitt Andre Prosjekt' (length=19) 
    1 => string '20' (length=2) 
3 => 
array (size=2) 
    0 => string 'MItt tredje prosjekt' (length=20) 
    1 => string '5' (length=1) 
4 => 
array (size=2) 
    0 => string 'et fjerde prosjekt' (length=18) 
    1 => string '0' (length=1) 

はJSONがこのpiechart と協力しつつあるここで必死になって、助けてください:)を

+0

var_dumpからどのJSON出力を取得していますか? JSONの出力をどのようにしたいのですか? – davidethell

+0

var dumpはvar dumpから取得します:C:\ wamp \ www \ php \ php prosjekt 16 \ statistikk.php:21:boolean false 私が望むのは、$ ordersがjson文字列になることですvar data = google.visualization.arrayToDataTable( <?php echo $ orders;?> )にフィードできます。 var options = { タイトル: "Timer fordeltpåprosjekter" }; var chart =新しいgoogle.visualization.PieChart(document.getElementById( "timer_piechart")); chart.draw(data、options); } –

答えて

1

私はそれを理解して動作させました。私に道の道を導いてくれてありがとう、助けてくれてありがとう。それはutf-8エンコーディングの問題であることが判明しました。作業コードは次のとおりです。

$sql = "select pNavn, antallTimer from Prosjekter where userId=".$userId; 
    $result = hentData($sql); 
$table = array(); 
$table['cols'] = array(
array('label' => 'Prosjekt Navn', 'type' => 'string'), 
array('label' => 'Timer', 'type' => 'number') 
); 

$rows = array(); 
while($r = mysqli_fetch_assoc($result)) { 
$temp = array(); 
$temp[] = array('v' => iconv(mb_detect_encoding($r['pNavn'], mb_detect_order(), true), "UTF-8", $r['pNavn'])); 
$temp[] = array('v' => (int) $r['antallTimer']); 
$rows[] = array('c' => $temp); 
} 

$table['rows'] = $rows; 

$jsonTable = json_encode($table); 
0

それはあなたの質問に何から不明です出力を希望していますが、mysqlフェッチの値を$ ordersのサブ配列として作成した配列に追加したいようです。だから、多分あなたは、このような何かをするためのもの:

$columns = array(
    array('label' => 'Prosjekt navn', 'type' => 'string'), 
    array('label' => 'Antall Timer', 'type' => 'number') 
); 
$orders = array($columns); 
/* Extract the information from $result */ 
while ($rad = mysqli_fetch_assoc($result)) { 
    $row = array($rad['pNavn'], $rad['antallTimer']); 
    array_push($orders, $row); 
} 
$orders=json_encode($orders); 
var_dump($orders); 

はUPDATE: Googleの可視化APIの使用状況に基づいて、あなたのJSONデータがarrayToDataTable方法に間違った給餌を探します。ドキュメントはあなたのデータは彼らの例のようにフォーマットする必要があります状態:あなたの最初の行は、あなたのデータべきであるラベルと種類表記と残りの行が含まれている必要があり、そのフォーマットに基づいて

var data2 = google.visualization.arrayToDataTable([ 
    [{label: 'Country', type: 'string'}, 
    {label: 'Population', type: 'number'}, 
    {label: 'Area', type: 'number'}, 
    {type: 'string', role: 'annotation'}], 
    ['CN', 1324, 9640821, 'Annotated'], 
    ['IN', 1133, 3287263, 'Annotated'], 
    ['US', 304, 9629091, 'Annotated'], 
    ['ID', 232, 1904569, 'Annotated'], 
    ['BR', 187, 8514877, 'Annotated'] 
]); 

。私はこの形式を反映するために上記のコードを更新しました。これはテストされていませんが、Googlの視覚化APIに必要なものに近いはずです。

+0

私が探していたものではなく、より多くの情報で質問を更新しました。また、JSONと連携して仕事を探しています –

+0

Google APIに必要なものを反映するように回答が更新されました。 – davidethell

関連する問題