Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как подругажать те данные которые находятся в базе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
No0k
Отправлено: 03 Сентября, 2014 - 21:36:21
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Начал пользоваться Google Chars и у меня в базе хранятся с какой ОС заходи пользователи, мне нужно как-то подсчитать количество людей данной ОС и вывести массив в JS
Вот код:
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  2.                                         <script type="text/javascript">
  3.                                           google.load("visualization", "1", {packages:["corechart"]});
  4.                                           google.setOnLoadCallback(drawChart);
  5.                                           function drawChart() {
  6.                                                 var data = google.visualization.arrayToDataTable([
  7.                                                   ['Task', 'Hours per Day'],
  8.                                                   ['Windows',     11],
  9.                                                   ['Linux',      2],
  10.                                                   ['Apple',  2]
  11.                                                 ]);
  12.  
  13.                                                 var options = {
  14.                                                   title: 'Операционные системы:',
  15.                                                   pieHole: 0.4,
  16.                                                 };
  17.  
  18.                                                 var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
  19.                                                 chart.draw(data, options);
  20.                                           }
  21.                                         </script>
  22.                                         <div id="donutchart" style="width: 900px; height: 500px;"></div>


Как мне сюда:
CODE (html):
скопировать код в буфер обмена
  1. ['Windows',     11],
  2.  ['Linux',      2],
  3. ['Apple',  2]

Вставить данные которые загружаться из таблицs stats_hosts и там строка platform в ней хрянаться ОС(windows, linux и тд). Подскажите пожалуйста.

(Отредактировано автором: 03 Сентября, 2014 - 21:37:01)

 
 Top
Viper
Отправлено: 04 Сентября, 2014 - 08:45:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




No0k отдаете массив вида
PHP:
скопировать код в буфер обмена
  1. $data = array(
  2.         array('Task', 'Hours per Day'),
  3.         array('Windows', 11),
  4.         array('Linux', 2),
  5.         array('Apple', 2)
  6. );


Потом в JS подставляете
CODE (htmlphp):
скопировать код в буфер обмена
  1. var data = google.visualization.arrayToDataTable(<?php echo json_encode($data); ?>);


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
No0k
Отправлено: 04 Сентября, 2014 - 21:04:19
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Viper пишет:
No0k отдаете массив вида
PHP:
скопировать код в буфер обмена
  1. $data = array(
  2.         array('Task', 'Hours per Day'),
  3.         array('Windows', 11),
  4.         array('Linux', 2),
  5.         array('Apple', 2)
  6. );


Потом в JS подставляете
CODE (htmlphp):
скопировать код в буфер обмена
  1. var data = google.visualization.arrayToDataTable(<?php echo json_encode($data); ?>);
Спасибо большое, так и сделал, такой вопрос. Это безопасно?
 
 Top
Viper
Отправлено: 05 Сентября, 2014 - 08:24:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




No0k пишет:
Это безопасно?
да.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
No0k
Отправлено: 06 Сентября, 2014 - 12:40:03
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Еще вопросик, я замутил функцию:
PHP:
скопировать код в буфер обмена
  1. <?PHP static function paep($div_name, $title, $whidth, $height, $user_id) {
  2.                         global $sql;
  3.                         $id = $sql->query("SELECT `id` FROM `static_site` WHERE `id_user` = '$user_id'")->result();
  4.                         $sql->query("SELECT `platform`, COUNT(`platform`) AS cnt FROM `stats_hosts`  WHERE `id_site` = '$id' GROUP BY `platform`");
  5.                         while ($OS = $sql->fetch()){
  6.                                 echo $data[] = Array($OS['platform'], $OS['cnt']);
  7.                         }
  8.                         ?>
  9.                         <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  10.                         <script type="text/javascript">
  11.                                 google.load('visualization', '1.0', {'packages':['corechart']});
  12.  
  13.                                 // Set a callback to run when the Google Visualization API is loaded.
  14.                                 google.setOnLoadCallback(drawChart);
  15.  
  16.                                 // Callback that creates and populates a data table,
  17.                                 // instantiates the pie chart, passes in the data and
  18.                                 // draws it.
  19.                                 function drawChart() {
  20.                                         var data = google.visualization.arrayToDataTable(<?PHP echo json_encode($data); ?>);
  21.                                         // Set chart options
  22.                                         var options = {'title':'<?PHP echo $title; ?>', 'width':<?PHP echo $whidth;?>, 'height':<?PHP echo $height;?>};
  23.  
  24.                                         // Instantiate and draw our chart, passing in some options.
  25.                                         var chart = new google.visualization.PieChart(document.getElementById('<?PHP echo $div_name; ?>'));
  26.                                         chart.draw(data, options);
  27.                                 }
  28.                         </script>
  29.                         <?PHP
  30.                         return '<div id="'.$div_name.'"></div>';
  31.                 }
  32. ?>
  33.  

Так все работает, только вот сюда:
Данные передаются вот так:
PHP:
скопировать код в буфер обмена
  1.  var data = google.visualization.arrayToDataTable([["Windows","3"]]);


А надо: ['Windows', 3]

Подскажите в чем косяк?

(Отредактировано автором: 06 Сентября, 2014 - 12:40:32)

 
 Top
Viper
Отправлено: 06 Сентября, 2014 - 19:58:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




No0k пишет:
Подскажите в чем косяк?

PHP:
скопировать код в буфер обмена
  1. $arr1 = array(array('foo', 1));
  2. $arr2 = array('bar', 2);
  3.  
  4. echo '<pre>';
  5. echo json_encode($arr1);
  6. echo '<br />';
  7. echo json_encode($arr2);
  8. echo '</pre>';

Смотрите на разницу.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
No0k
Отправлено: 07 Сентября, 2014 - 15:49:26
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Viper пишет:
No0k пишет:
Подскажите в чем косяк?

PHP:
скопировать код в буфер обмена
  1. $arr1 = array(array('foo', 1));
  2. $arr2 = array('bar', 2);
  3.  
  4. echo '<pre>';
  5. echo json_encode($arr1);
  6. echo '<br />';
  7. echo json_encode($arr2);
  8. echo '</pre>';

Смотрите на разницу.


Паосмотрел, попробовал - не получилось. Все равно число берется в кавычки. Недовольство, огорчение
 
 Top
Viper
Отправлено: 07 Сентября, 2014 - 17:20:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Тю... тупанул... Вам надо чтобы там int был...

Бред вот этот уберите
PHP:
скопировать код в буфер обмена
  1. echo $data[] = Array($OS['platform'], $OS['cnt']);


PHP:
скопировать код в буфер обмена
  1. $data[] = array($OS['platform'], (int)$OS['cnt']);

или
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP echo json_encode($data, JSON_NUMERIC_CHECK); ?>
зависит от версии php


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
No0k
Отправлено: 08 Сентября, 2014 - 22:29:46
Post Id


Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Янв. 2014  


Помог: 0 раз(а)




Viper пишет:
Тю... тупанул... Вам надо чтобы там int был...

Бред вот этот уберите
PHP:
скопировать код в буфер обмена
  1. echo $data[] = Array($OS['platform'], $OS['cnt']);


PHP:
скопировать код в буфер обмена
  1. $data[] = array($OS['platform'], (int)$OS['cnt']);

или
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?PHP echo json_encode($data, JSON_NUMERIC_CHECK); ?>
зависит от версии phpВы мне дали очень много материала и я вам очень благодарен. Все получилось и опять я матерю гугл за то что его чарты не умеют работать с двойными кавычками (""), т.е. надо что бы было: ['Windows',4], а не ["Windows",4] Закатив глазки Закатив глазки Закатив глазки
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB