0

MySql テーブルから円グラフを作成するのに苦労しています。

私のテーブルは以下のようなものです

buy_trader    qty

 TKS3G  2069
 MSB1G  4417
 JKB6   4021
 FWS2   3507
 ASI1G  2578
 other  18228

次のコードを使用して、テーブルから円グラフを生成しています。これで私を助けてください

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Highcharts Example</title>

 <?php
 $con = mysql_connect("localhost","root","");
 if (!$con) {
 die('Could not connect: ' . mysql_error());
  }
  mysql_select_db("offlinesurv", $con);
  $result = mysql_query("SELECT * FROM top_buy_trades");
  while($row = mysql_fetch_array($result)) {
  echo $row['buy_trader'] . "\t" . $row['qty']. "\n";
  }

   mysql_close($con);
  ?> 
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript">



 $(function () {
  var chart;
  $(document).ready(function() {
   chart = new Highcharts.Chart({
    chart: {
     renderTo: 'container',
     plotBackgroundColor: null,
     plotBorderWidth: null,
     plotShadow: false
       },
     title: {
       text: 'Top Buy Traders'
        },
        tooltip: {
         pointFormat: '{series.name}: <b>{point.percentage}%</b>',
         percentageDecimals: 1
         },
         plotOptions: {
           pie: {
           allowPointSelect: true,
           cursor: 'pointer',
           dataLabels: {
           enabled: true,
           color: '#000000',
                    connectorColor: 'green',
                    formatter: function() {
                        return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
                    }
                }
            }
        },
        series: [{
            type: 'pie',
            name: 'Broker share',
            data: [<?php echo $row ?>]
        }]
    });
 });

});
    </script>
</head>
<body>
<script src="js/highcharts.js"></script>
<script src="js/exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>

</body>
</html>

これで私を助けてください.私はしばらくの間これに苦労しているので.

このコードのどこが間違っていますか

4

3 に答える 3

0

読む行:

data: [<?php echo $row ?>]

ループしていません。データベースの結果全体をループして、mysql データから highcahrts の一連のデータを生成する必要があります。現時点では 1 行が生成されますが、これは PHP ループの外側にあるため、正しくありません。

次のようになります。

while($row = mysql_fetch_array($result)) {
  echo //more data into your series array into the JS code
}
于 2013-03-12T10:41:41.957 に答える
0

データの前処理に関する記事をご覧くださいhttp://docs.highcharts.com/#preprocessing

于 2013-03-12T14:38:27.537 に答える
0

このような値を渡すことはできません。以下のコードを試してください。

while ループを次のように変更します。

while($row = mysql_fetch_array($result)) {
   $traders[] = array(
      'trader' => $row['buy_trader'],
      'qty'    => $row['qty']
   );
}

次に、スクリプトを次のように変更します。

series: [{
            type: 'pie',
            name: 'Broker share',
            data: [
                    <?php

                      foreach($traders as $trader) {
                         echo "[".$trader['trader'].",". $trader['qty']."],";
                     }
                     ?>
            ]
        }]
于 2013-03-12T10:47:36.167 に答える