0

mysqlデータベースからHighChartsへのデータ接続で立ち往生しています

以下のhighchart.jsコード

            <script type="text/javascript">
    $(function () {
        var chart;
        $(document).ready(function() {
            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container5',
                    plotBackgroundColor: null,
                    plotBorderWidth: 2,
                    plotShadow: false
                },
                title: {
                    text: '<p><?php echo $chart5; ?></p>'
                },
                // tooltip: {
                    // pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                    // percentageDecimals: 1
                // },
               plotOptions: {
                    pie: {
                        allowPointSelect: true,
                        cursor: 'pointer',
                        dataLabels: {
                            enabled: false
                        },
                        showInLegend: true
                    }
                },


                    xAxis: {
             categories: [<?php echo "'".implode("','",$data)."'"; ?>]
          },
          series: [{
           type: 'pie',
             data: [<?php echo implode(",",$data1);  ?>] 

                }]
            });
        });

    });

        </script>

と私のdatabase.php

            $data = array();
        $sql = "SELECT x_axis FROM licence_chart ";
         $result9 = mysql_query($sql);
                $data9 = array();
                while ($row = mysql_fetch_array($result9)) {
                   $data9 = $row['x_axis'];
                   $data[] = $data9;
                }

        $data1 = array();
        $sql = "SELECT y_axis FROM licence_chart ";
         $result10 = mysql_query($sql);
                $data10 = array();
                while ($row = mysql_fetch_array($result10)) {
                   $data10 = $row['y_axis'];
                   $data1[] = $data10;
                }

                echo "'".join("','",$data)."'";
                echo join(",",$data1);

このコードをローカルホストで実行すると、円グラフが表示されますが、値は表示されません。値は.butx-axies のように表示されますが、値は正しく表示されます。Slicey-axies

このようなテーブルデータのlicence_chartテーブルx_axiesy_axiesは、列です

x_axies{crome,opera,ie,firefox,safari}
y_axies{0.12,0.23,23.2,56.2,2}

私はhighchart.jsファイルにdata[] データを入れたいのですがこのようになります

['safari',10], ['firefox',1.5],['ie'、0.5]

だから私は何を間違ってファイルしているのかdatabase.php教えhighchatr.jsてくださいそして私のコードを修正してください。

4

3 に答える 3

1

上記の質問に対するこの正解、私はこれを使用して上記の形式を取得します

<php
    $sql = "SELECT x_axis,y_axis FROM licence_chart ";
    $result9 = mysql_query($sql);
    $data9 = array();
    while ($row = mysql_fetch_array($result9)) 
        {
            $data9 = "'".$row['x_axis']."'".",".$row['y_axis'];
            $data[] = $data9;
        }   
    for($ii=0;$ii<count($data);$ii++)
        {
            echo "[".$data[$ii]."]," ;  
        }   
?> 
于 2012-12-21T06:04:17.903 に答える
0

エラーが言うように: http ://www.highcharts.com/errors/14

Highchartsエラー#14文字列値がseries.dataに送信され、期待値

これは、たとえば次のような設定で、文字列をデータポイントとして渡す場合に発生します。

シリーズ:[{データ:["3"、 "5"、 "1"、 "6"]}]

Highchartsは、データ値が数値であることを想定しています。これの最も一般的な理由は、データがCSVまたはXMLソースから解析され、実装者が解析された値に対してparseFloatを実行するのを忘れたことです。

パフォーマンス上の理由から、内部型キャストは実行されず、最初の値のみがチェックされます(2.3以降)。

あなたの問題はあなたecho join($data1, "','");です。yAxis値を文字列にすることはできません。そして、あなたはただ1つの巨大な文字列を取得しているように見えます:

'Safari','Opera','Firefox','IE','Chrome','Others10','6','40.5','20','10.6','0.5

この結合操作を行うことにより、yAxis番号の前後に一重引用符を追加します。単にそれを作る:

echo join($data1, ",");

これで問題の一部が修正されるはずです。エラーページを読んでいたら、これを見たことでしょう-ノックではありませんが、HighChartsには非常に優れたドキュメントとエラーレポートがあります。

これを正しい形式で取得するには、[name、yValue]を使用して個別の系列要素を作成する必要もあります。あなたが持っているのは、[name、name、name、....、yVal、yVal、yVal..]の文字列だけです。

それを解析する方法は?本当にあなた次第です。しかし、なぜSELECT '[''' + x_axis + '',' + CONVERT(VARCHAR(10), y_axis) + ']' FROM licence_chart次のように参加してみませんか?

echo join($data1, ",");

これにより、(数値を使用したテキスト連結の実行に関するmySQL構文がわからないため、お任せします。これはMS SQLにあります):

['Safari', 6], ['Opera', 40.5], ['Firefox', 20], ['IE', 10.6], ['Chrome', 0.5], ['Others10', <some number...looks like it got cut off in your question>]
于 2012-12-19T17:15:13.410 に答える
0
<?php

// Set the JSON header header("Content-type: text/json"); // The x value is the current JavaScript time, which is the Unix time multiplied by 1000. $x = time() * 1000; // The y value is a random number $y = rand(0, 100); // Create a PHP array and echo it as JSON $ret = array($x, $y); echo json_encode($ret); ?>

これはHIGHCHARTSのインストール手順からの回答です

于 2012-12-21T06:14:31.127 に答える