Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php+mysql+Highcharts Диаграммы и графики из запроса. / 4 сообщений из 4, страница 1 из 1
21.11.2018, 08:23
    #39735922
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php+mysql+Highcharts Диаграммы и графики из запроса.
Есть результат запроса по ним я сделал таблицу с показаниями состояния по обрашениям граждан. Тепер задача сделат их ввиде диаграм и графиков. Выбрал Highcharts и потестил pie, получился не плохо. Как заполнить его с помощю данных из базы? Вот пробный вариант.
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
<div id="container" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto"></div>
    <script type="text/javascript">
          Highcharts.chart('container', {
              chart: {
                  plotBackgroundColor: null,
                  plotBorderWidth: null,
                  plotShadow: false,
                  type: 'pie'
              },
              title: {
                  text: 'Обрашения на 2018 год'
              },
              tooltip: {
                  pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
              },
              plotOptions: {
                  pie: {
                      allowPointSelect: true,
                      cursor: 'pointer',
                      dataLabels: {
                          enabled: true,
                          format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                          style: {
                              color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                          }
                      }
                  }
              },
              series: [{
                  name: 'Тип обрашения',
                  colorByPoint: true, 
                  data: [{
                      name: 'Заявления','//<?php echo $data[1] ?>',
                      y: 20,//<?php echo $data2[1] ?>,
                      sliced: true,
                      selected: true
                  }, {
                      name:'Жалоба',// '<?php echo $data[2] ?>',
                      y: 4 //<?php echo $data2[2] ?>
                  }, {
                      name: 'Предложения',//'<?php echo $data[3] ?>',
                      y: 4  //<?php echo $data2[3] ?>
                  }]
              }]
          });
		</script>


вот код запроса
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
$str_qur = " select 'Жалоба' as status, count(m.reg_type) as kol from appeal m where  m.reg_type=1 group by m.reg_type union";
$str_qur .= "  select 'Заявление' as status, count(m.reg_type) as kol from appeal m where  m.reg_type=2 group by m.reg_type union";
$str_qur .= "  select 'Предложение' as status,count(m.reg_type) as kol from appeal m where m.reg_type=3 group by m.reg_type"; 
$query = mysql_query($str_qur,$dbcnx) or die(mysql_error());      
                while($arr = mysql_fetch_array($query, MYSQL_BOTH)){  
                  $data[] = $arr['status'];
                  $data2[] = $arr['kol'];

                }


и это данные как поставить на вот этот график
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
<div id="container1" style="min-width: 310px; height: 400px; max-width: 600px; margin: 0 auto">


    <script type="text/javascript">
           var chart = new Highcharts.Chart({
                chart: { 
                    renderTo: 'container1',
                    type: 'column',
                    margin: [ 50, 50, 100, 80]
                },
                title: {
                    text: 'Виды обращения'
                },
            credits: {
            enabled: false
            },
                xAxis: {
                    categories: ['<?php echo join($data, "','"); ?>'],
                    labels: {
                        rotation: -45,
                        align: 'right',
                        style: {
                            fontSize: '13px',
                            fontFamily: 'Verdana, sans-serif'
                        }
                    }
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'нет обращение'
                    }
                },
                legend: {
                    enabled: false,
                layout: 'vertical',
                                    backgroundColor: '#FFFFFF',
                                    align: 'left',
                                    verticalAlign: 'top',
                                    x: 50,
                                    y: 35,
                                    floating: true,
                                    shadow: true
                    },
                tooltip: {
                        pointFormat: '<b>{point.y:.1f}  tickets</b>',
                },
                plotOptions: {
                        column: {
                                    pointPadding: 0.2,
                                    borderWidth: 0
                        }
                },
                series: [{
                    name: ['<?php echo join($data, "','"); ?>'],
                    data: ['<?php echo join($data2, "','"); ?>'],
                      dataLabels: {
                                  enabled: true,
                                  rotation: -90,
                                  color: '#FFFFFF',
                                  align: 'right',
                                  x: 4,
                                  y: 10,
                                  style: {
                                      fontSize: '13px',
                                      fontFamily: 'Verdana, sans-serif',
                                      textShadow: '0 0 3px black',

                                  }
                      }
                }]
           });            

    </script>
</div>



примеры из инета и чуть изменил под себя. Второй график кроми описания нечего не показываеть а первый показывает.
...
Рейтинг: 0 / 0
21.11.2018, 08:52
    #39735930
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php+mysql+Highcharts Диаграммы и графики из запроса.
Rustam ErgashevКак заполнить его с помощю данных из базы?В несколько этапов.
1. Получить данные из базы. В данном случае это будут массивы $data и $data2.
2. Передать данные для отображения на клиент. Очевидно, формируется скрипт с использованием данных из вышеназванных массивов.
3. Отрисовать график по полученным с сервера данным. Видимо, этим занимается сторонняя библиотека.


Rustam ErgashevВторой график кроми описания нечего не показываеть а первый показывает.Смотрите, на каком этапе данные теряются, становятся не подходящими для дальнейшего использования, не соответствуют требованиям используемой библиотеки и т.п.
...
Рейтинг: 0 / 0
21.11.2018, 09:06
    #39735935
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php+mysql+Highcharts Диаграммы и графики из запроса.
vkleRustam ErgashevКак заполнить его с помощю данных из базы?В несколько этапов.
1. Получить данные из базы. В данном случае это будут массивы $data и $data2.
2. Передать данные для отображения на клиент. Очевидно, формируется скрипт с использованием данных из вышеназванных массивов.
3. Отрисовать график по полученным с сервера данным. Видимо, этим занимается сторонняя библиотека.


Rustam ErgashevВторой график кроми описания нечего не показываеть а первый показывает.Смотрите, на каком этапе данные теряются, становятся не подходящими для дальнейшего использования, не соответствуют требованиям используемой библиотеки и т.п.
1. Данные получены.
2. Вот с этим пунктом у меня проблемы как их передать правильно не получается.
3. Есть ли передат данные получется то график рисует.
Пробную скрипт я показал вот данные из базы массивы $data и $data2 вставлены и тоже проверины они закоментированы. Меня интересует передача за раз всех данных. Вед я незнаю иногда количество элементов массива.
Код: html
1.
2.
  name: ['<?php echo join($data, "','"); ?>'],
  data: ['<?php echo join($data2, "','"); ?>'],


примерно так, но не получилось, где то допустил ошибку.
по второму могу сказать что ошибки устранил который дал браузер, но данные не отображает (график), а описания показывает то есть $data показыветь а $data2 не показывает.
...
Рейтинг: 0 / 0
21.11.2018, 09:50
    #39735948
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php+mysql+Highcharts Диаграммы и графики из запроса.
Rustam Ergashev,

Ну так посмотрите код яваскрипта, который Вы сформировали. Сверьтесь с документацией по используемой библиотеке - насколько код исходных данных соответствует требованиям. Если не соответствует - приводите в соответствие проблемное место.
Размерность данных следует тоже проверить. Например, если шкала графика от 0 до 10 единиц, а данные лежат в пределах 100...500 единиц, то пустой график вполне ожидаем.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php+mysql+Highcharts Диаграммы и графики из запроса. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]