2013-02-22 1 views
0

Моя проблема заключается в следующем:Highcharts ошибка массива Месяц/множественным данные

У меня есть база данных, которая дает мне два набора данных, как показано на рисунке ниже:

http://i.imgur.com/tlVtVTX.png

Я могу» t вполне понятно, если здесь проблема с PHP/JSON или SQL. Мне известно, что в моих наборах данных JSON должно быть несколько данных, например:

[{"name": "Person1", " данные ": [123123 и т. д. и т. д. и т. д.]}

Моя проблема заключается в том, что он показал, как:

[{ "Имя": "Person1", "данные": [123123]}

[{ "Имя": "Person1",» данные ": [2345436]}

JSON (измененные имена и номера для вопросов конфиденциальности):

[{"name":"Person1","data":[123123]},{"name":"Person1","data":[123123]} 
,{"name":"Person2","data":[123123]},{"name":"Person2","data":[123123]} 
,{"name":"Person3","data":[123123]},{"name":"Person3","data":[123123]} 
,{"name":"Person4","data":[123123]},{"name":"Person4","data":[123123]}] 

SQL (также изменен, должен быть тот же запрос, хотя):

$SQL = "SELECT ISNULL(USERNAME) AS Accountmanagers, xMonth AS xMonth, ROUND(SUM(report.[FATDOLLARS(EUR)]), 0) AS COGS 
FROM SecretDB 
WHERE xYear = '2013' 
GROUP BY ISNULL(USERNAME), xMonth 
ORDER BY ISNULL(USERNAME), xMonth 

мой запрос выглядит следующим образом:

http://i.imgur.com/q4QCsRF.png

Это PHP я использую для моих JSON данных:

while($row = sqlsrv_fetch_array($somevariablehere, SQLSRV_FETCH_ASSOC)) 
{ 

    $name = $row['Accountmanagers']; 

    $categories = array($row['xMonth']); 

    $data = array($row['COGS']); 

    $arr[] = array('name' => $name, 'data' => $data); 
} 

$arr = json_encode($arr, JSON_NUMERIC_CHECK); 

echo $arr; 

HighChart ("Серия: JSON" заменяется фиктивными данными) :

<script> 
$(function() { 
    var chart3; 
    $(document).ready(function() { 

     // $.getJSON("account.php", function(json) { 

      chart3 = new Highcharts.Chart({ 
       chart: { 
        renderTo: 'accountmanagers', 
        type: 'column' 
       }, 
       title: { 
        text: '2012' 
       }, 
       xAxis: { 
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'], 
        title: { text: 'Month'} 
       }, 
       yAxis: { 
        min: 0, 
        title: { 
         text: 'Revenue' 
        } 
       }, 
       legend: { 
        layout: 'vertical', 
        backgroundColor: '#FFFFFF', 
        align: 'left', 
        verticalAlign: 'top', 
        x: 100, 
        y: 70, 
        floating: true, 
        shadow: true 
       }, 
       tooltip: { 
        formatter: function() { 
         return '<b>'+ this.series.name +'</b><br/>'+ 
          this.x +': '+ this.y +'€'; 
        } 
       }, 
       plotOptions: { 
        column: { 
         pointPadding: 0.2, 
         borderWidth: 0 
        } 
       }, 
        series: [{"name":"Person1","data":[12528]},{"name":"Person1","data":[2658]},{"name":"Person2","data":[27368]},{"name":"Person2","data":[30793]},{"name":"Person3","data":[64987]},{"name":"Person3","data":[21582]},{"name":"Person4","data":[53735]},{"name":"Person4","data":[14810]}] 
      }); 
     // }); 
    }); 

}); 
     </script> 

Я не знаю, нужна ли вам дополнительная информация, если да, позвольте мне k Теперь.

Я хочу совместить значения Person или Accountmanager и, разумеется, распространять их в течение месяцев, вместо того, чтобы создавать новые ряды для каждой информации.

Заранее спасибо :-)

ответ

1

Я нашел ошибку - это был SQL-запрос, я сделал целую кучу левых внешних объединений, которые (после многих копий/вставки) давали мне данные за каждый месяц с одним именем серии.

0

Вы должны предоставить значения для каждого пользователя для всех месяцев, которые вы упомянули в категориях. Вы передаете 2 значения для каждого человека, который отдельно, поэтому вы получаете график только для JAN

Ex

series: [{ 
      name: 'Person1', 
      data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] 

     }, { 
      name: 'Person2', 
      data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3] 

     }] 

Образец fiddle при условии высокой графики

+0

Да, я знаю, что каждый человек должен иметь несколько наборов данных, например. [{"name": "Person1", "data": [123123, 34567, etc, etc,]}] Моя проблема заключается в том, что я получаю данные другим способом, как я могу это исправить? – nielskildsgaard

+0

Ваш запрос выглядит хорошо.Проблема заключается в php, где вы создаете, вы получаете отдельные строки для данных каждого месяца, которые вам нужны для создания отдельного массива данных для каждого пользователя, который имеет свои данные за каждый месяц. – Meherzad

+0

Звучит примерно правильно. Как я могу это сделать? Я еще не профессионал с php :-) Я не знаю, ясно ли это или нет, но таблица xMonth - это всего лишь цифры от 1 до 12 – nielskildsgaard

Смежные вопросы