2016-11-18 8 views
0

HighChartで1ページを描画したい。私はデータベースからデータを取り出した。私はjson_encodeで書きました。私は$ xxxの値が何であるかを見ることができます。そのjson形式。しかし、私のグラフは機能しません。私はvar data = <?php echo json_encode($xxx); ?> doesnt仕事と戻りvalurだと思う。どこで間違いはありますか?ここでHighChart Lineデータベースからのグラフの値

は、データベース値のための私のPHPコードです:

<?php 
$var = "SELECT SUBSTRING(KayitTarihi,1,4) AS year,SUBSTRING(KayitTarihi,6,2) AS month,SUBSTRING(KayitTarihi,9,2) AS day,SUBSTRING(KayitTarihi,12,2) AS saat,SUBSTRING(KayitTarihi,15,2) AS dakika,Guc FROM Urun WHERE Date(KayitTarihi)=\"".$link_m."\""; 

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

$data = array(); 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_assoc()) { 
     $data[] = $row; 
    } 
} 

$no = 1; 
$total_deger=count($data); 

foreach($data as $dat) 
{ 
$xxx ="[Date.UTC(".$dat['year'].",".$dat['month'].",".$dat['day'].",".$dat['saat'].",".$dat['dakika'].",00),".$dat['Guc']."]"; 
if($no < $total_deger) 
{ 
    echo ","; 
} 
echo json_encode($xxx); 
} 


//free memory associated with result 
$result->close(); 


//close connection 
$mysqli->close(); 
?> 

そして、ここでは私のhighchartスクリプトです:

<script> 

$(function() { 

var data = <?php echo $xxx; ?>; 

     Highcharts.chart('container', { 
      chart: { 
       zoomType: 'x' 
      }, 
      title: { 
       text: 'USD to EUR exchange rate over time' 
      }, 
      subtitle: { 
       text: document.ontouchstart === undefined ? 
         'Click and drag in the plot area to zoom in' : 'Pinch the chart to zoom in' 
      }, 
      xAxis: { 
       type: 'datetime' 
      }, 
      yAxis: { 
       title: { 
        text: 'Exchange rate' 
       } 
      }, 
      legend: { 
       enabled: false 
      }, 
      plotOptions: { 
       area: { 
        fillColor: { 
         linearGradient: { 
          x1: 0, 
          y1: 0, 
          x2: 0, 
          y2: 1 
         }, 
         stops: [ 
          [0, Highcharts.getOptions().colors[0]], 
          [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')] 
         ] 
        }, 
        marker: { 
         radius: 2 
        }, 
        lineWidth: 1, 
        states: { 
         hover: { 
          lineWidth: 1 
         } 
        }, 
        threshold: null 
       } 
      }, 

      series: [{ 
       type: 'area', 
       name: 'USD to EUR', 
       data: [data] 
       }] 
     }); 
    }); 

</script> 

編集:私は、JSON形式を編集しました。私はちょうどエコーを書くとき。ちょうど1つの値を参照してください。 Edit2:私は9の値を持っています。あなたがこれをエラーとして表示されるはず引用符

var data = "<?php echo json_encode($xxx); ?>" 

でそれをラップしてみ

,,,,,,,,[Date.UTC(2016,11,15,10,28,00),0] 
[Date.UTC(2016,11,15,14,25,00),0] 
[Date.UTC(2016,11,15,14,25,00),0] 
[Date.UTC(2016,11,15,14,27,00),17] 
[Date.UTC(2016,11,15,18,32,00),54] 
[Date.UTC(2016,11,15,18,32,00),54] 
[Date.UTC(2016,11,15,18,33,00),93] 
[Date.UTC(2016,11,15,18,33,00),34] 
[Date.UTC(2016,11,15,18,34,00),34] 

が、私はhighchartのためのドキュメントを読んだとき、私の値は

([ 
[Date.UTC(2016,11,15,10,28,00),0], 
[Date.UTC(2016,11,15,14,25,00),0], 
[Date.UTC(2016,11,15,14,25,00),0], 
[Date.UTC(2016,11,15,14,27,00),17], 
[Date.UTC(2016,11,15,18,32,00),54], 
[Date.UTC(2016,11,15,18,32,00),54], 
[Date.UTC(2016,11,15,18,33,00),93], 
[Date.UTC(2016,11,15,18,33,00),34], 
[Date.UTC(2016,11,15,18,34,00),34] 
]); 

答えて

0

でなければなりません:私の出力がありますコンソール

また、正しく連結されていません。これは、ループは、あなたが$xxx

$xxx = "[Date.UTC(".$dat['year'].",".$dat['month'].",".$dat['day'].",".$dat['saat'].",".$dat['dakika'].",00),".$dat['Guc']."]"; 

に保存された最後のエントリを上書きしている実行するたびに

$xxx .= "[Date.UTC(".$dat['year'].",".$dat['month'].",".$dat['day'].",".$dat['saat'].",".$dat['dakika'].",00),".$dat['Guc']."]"; 

最後に、この

$xxx = ''; 

foreach($data as $dat){ 

    // if not a blank string i.e. something added, add a comma to the end read for the next concatenation 
    if($xxx != '') $xxx .= ","; 

    // concatenate 
    $xxx .= "[Date.UTC(".$dat['year'].",".$dat['month'].",".$dat['day'].",".$dat['saat'].",".$dat['dakika'].",00),".$dat['Guc']."]"; 
} 

// if not blank string, echo 
if($xxx != ''){ 
    echo json_encode($xxx);  
} 
+0

のように動作するようにあなたのループを変更する必要があり、私は私が編集した意味します質問。 – catcher

+0

私のグラフはまだ動作していません。私は自分の価値が好きだと思う?([Date.UTC(2013,5,2)、0.7695]、 [Date.UTC(2013,5,3)、0.7648]、]);私の価値は:,,,,,,,,,, [Date.UTC(2016,11,03,08,18,00)、12] [Date.UTC(2016,11,03,08,32、 00)、12] [Date.UTC(2016,11,03,08,32,00)、12] – catcher

+0

回答を更新して結果を含めてください – atoms

関連する問題