Высокие значения круговых диаграмм HighCharts X-axies не отображаются при попытке получить данные из базы данных MySQL с помощью PHP

Я застрял в подключении данных из базы данных 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); 

когда я запускаю этот код в localhost, тогда круговая диаграмма показывает, но в значениях x-axies не отображаются значения, показанные как Slice Но значение y-axies отображается правильно,

в данных таблицы x_axies , подобных этому в таблице x_axies , y_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 пожалуйста, скажите мне и исправьте мой код.

Solutions Collecting From Web of "Высокие значения круговых диаграмм HighCharts X-axies не отображаются при попытке получить данные из базы данных MySQL с помощью PHP"

этот правильный ответ для вышеупомянутого вопроса, я использую это и получаю выше формат

 <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]."]," ; } ?> 

Как ошибка говорит: http://www.highcharts.com/errors/14

Highcharts Error # 14 Значение строки, отправленное в series.data, ожидается Число

Это происходит, если вы передаете строку в виде точки данных, например, в такой настройке:

серия: [{данные: ["3", "5", "1", "6"]}]

Highcharts ожидает, что значения данных будут числами. Наиболее распространенная причина этого заключается в том, что данные анализируются из CSV или из источника XML, и разработчик забыл запустить parseFloat для анализируемого значения.

По соображениям производительности внутреннее литье типов не выполняется, и проверяется только первое значение (начиная с 2.3).

Ваша проблема – ваше echo join($data1, "','"); , Значения yAxis не могут быть строкой. И похоже, что вы просто получаете одну гигантскую строку:

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

Выполняя эту операцию соединения, вы добавляете одинарные кавычки вокруг чисел yAxis. Просто сделайте это:

 echo join($data1, ","); 

Это должно устранить часть вашей проблемы. Если бы вы прочитали страницу с ошибкой, вы бы увидели это – не стук на вас, но HighCharts имеет отличные отчеты о документации и ошибках.

Чтобы получить это в правильной форме, вам также понадобится сделать отдельные элементы ряда с помощью [name, yValue]. У вас есть только строка из [имя, имя, имя, …., 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>] 
 <?php 

// Set the JSON header header("Content-type: text/json"); // 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