highcharts вывод из базы данных

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

highcharts вывод из базы данных

Сообщение Artikk »

Здравствуйте. Возник следующий вопрос,
Сам виджет:

Код: Выделить всё

<?php
	echo Highcharts::widget([
	'options' => [
	'title' => ['text' => 'Статистика'],
		'xAxis' => array(
			'type' => 'datetime',
			'tickInterval'=>30,
			'dateTimeLabelFormats'=>array( // don't display the dummy year
				'day'=> '%e of %b',
				'minute' => false,
				'hour' => false,


			),
		),
	'yAxis' => [
	'title' => ['text' => 'Количество']
	],
	'series' => [
	['name' => 'Заказы', 'data' => [1, 4,5 ,5,4,33]]
	]
	]
	]);
?>
Контроллер:

Код: Выделить всё

class StatController extends AppAdminController
{
	public function actionIndex(){
		$query = Stat::find()->groupBy('product_id');

		$countQuery = clone $query;
		$pages = new Pagination([
			'totalCount' => $countQuery->count(),
			'pageSize' => 20,
			'forcePageParam' => false,
			'pageSizeParam' => false
		]);

		$products = $query
			->offset($pages->offset)->limit($pages->limit)
			->select(['*', 'COUNT(*) AS cnt'])->orderBy(['cnt'=>SORT_DESC])->asArray()->all();
		return $this->render('index', compact('products', 'pages'));
	}
}
Таблица из бд: http://c2n.me/3HIx7TT
Вопрос, как мне вставить данные в сам виджет highcharts , чтобы по оси Y было количество продаж за день, а по оси X день шел???
Нигде толком не нашел про highcharts ...
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: highcharts вывод из базы данных

Сообщение caHek2x »

что примеры по просто js
http://www.highcharts.com/docs/chart-concepts/series
что примеры по yii2 обертке ... там есть все что вам надо ...
https://github.com/2amigos/yii2-highcharts-widget
https://github.com/miloschuman/yii2-highcharts
вникните и поэксперементируйте и станет все наглядно понятно
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

да я читал там это, я не пойму,как мне массив сам передать правильный...
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: highcharts вывод из базы данных

Сообщение Onotole »

Код: Выделить всё

'series' => [
	'name' => 'Продажи за день',
	'data' => [
		[1234567890, 1],
		...
		[1234567890, 5],
	]
]
Где 1234567890 - это временная метка в миллисекундах, а 1 и 5 - это данные
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

как мне из контроллера вставить количество продаж за день допустим???
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: highcharts вывод из базы данных

Сообщение Onotole »

Artikk писал(а): 2017.02.21, 08:44 как мне из контроллера вставить количество продаж за день допустим???

Код: Выделить всё

$series = [
	'name' => 'Продажи за день',
	'data' => [
		[1234567890, 1],
		...
		[1234567890, 5],
	]
]

return $this->render('view', ['series' => $series]);
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

вот сейчас не понял, вы предлагаете это в контроллер вставить??
$series = [
'name' => 'Продажи за день',
'data' => [
[1234567890, 1],
...
[1234567890, 5],
]
]
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

у меня просто есть $products я думал из нее в виде как-то вытащить данные в нужном формате...
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: highcharts вывод из базы данных

Сообщение Onotole »

Artikk писал(а): 2017.02.21, 17:53 у меня просто есть $products я думал из нее в виде как-то вытащить данные в нужном формате...
Вам помочь составить выборку из базы?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

да, выборку из базы и как вставить мне в виджет?
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: highcharts вывод из базы данных

Сообщение caHek2x »

ужас ну это же слишком ... вы бы хоть немного почитали ...
у вас же уже есть ваш же пример ... замените там series на результаты выборки
а про выборку почитайте документацию ... find, where, asArray, all
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

Я могу выбрать, но вставляет оно не правильно. т.к. все данные в один пункт ставит, поэтому и спрашиваю у вас, как это сделать
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: highcharts вывод из базы данных

Сообщение caHek2x »

Artikk писал(а): 2017.02.21, 23:07 Я могу выбрать, но вставляет оно не правильно. т.к. все данные в один пункт ставит, поэтому и спрашиваю у вас, как это сделать
а да я не заметил у вас уже даже запрос есть ... ну так в чем беда?

Код: Выделить всё

$series = [
	'name' => 'Продажи за день',
	'data' => []
];

foreach($products as $product){
	$series['data'][] = [$product['x'], $product['y']]
}
на что заменить X и Y понятно ?
только возможно данные пересортировать надо будет ...
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

caHek2x писал(а): 2017.02.21, 23:47
на что заменить X и Y понятно ?
только возможно данные пересортировать надо будет ...
что вставлять не понятно и как отсортировать?
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

Re: highcharts вывод из базы данных

Сообщение caHek2x »

Ну как это не понятно .... То что вы на графике вывести хотите ... Названия столбцов из выполненного запроса ... А сортировка или order в запросе измените, или $series[data] обработайте в usort если запрос изменять не хотите ...

Вы случайно не один из тех "на cms делать сайт не хочу хочу на движке но хочу чтоб все легко было, ибо учить пхп не хочу", вы просто запутались или вы действительно не знаете php и сразу взялись за изучение yii и написание проекта ?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

Не выходит нормальное отображение.

Код: Выделить всё

<?php
	echo Highcharts::widget([
	'options' => [
	'title' => ['text' => 'Статистика'],
		'xAxis' => array(
			'type' => 'datetime',
			'tickInterval'=>30,
			'dateTimeLabelFormats'=>array( // don't display the dummy year
				'day'=> '%e of %b',
				'minute' => false,
				'hour' => false,


			),
		),
	'yAxis' => [
	'title' => ['text' => 'Количество']
	],
	'series' => [
	['name' => 'Заказы', 'data' => [1, 4,5 ,5,4,33]]
	]
	]
	]);
?>

вот виджет, как, что и куда мне вставлять?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

Сделал щас так:

Код: Выделить всё

<?php
$categories = [
	'name' => 'Продажи за день',
	'data' => []
];
foreach($products as $product){

	$categories['data'][] = [$product['name'], $product['price']];
	print_r($categories['data']);


}
	echo Highcharts::widget([

		'options' => [
			'title' => ['text' => 'Fruit Consumption'],
			'xAxis' => [
				'categories' => $categories['data']
			],
			'yAxis' => [
				'title' => ['text' => 'Fruit eaten']
			],
			'series' => $categories['data']
		],
	]);


?>
http://c2n.me/3HQRg5D вот что print_r показыает, как сделать, чтобы имена выводило?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: highcharts вывод из базы данных

Сообщение rak »

для начала нужно научиться пользоваться тегом code, потому как желания разбираться в этом неформатированном коде нет никакого
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

как мне цикл foreach правильно вставить?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

Re: highcharts вывод из базы данных

Сообщение Artikk »

Код: Выделить всё

<?php
$categories = [
	'name' => 'Продажи за день',
	'data' => []
];
foreach($products as $product){

	$categories['data'][] = [$product['name'], $product['price']];
	print_r($categories['data']);


}
	echo Highcharts::widget([

		'options' => [
			'title' => ['text' => 'Fruit Consumption'],
			'xAxis' => [
				'categories' => $categories['data']
			],
			'yAxis' => [
				'title' => ['text' => 'Fruit eaten']
			],
			'series' => $categories['data']
		],
	]);


?>

извините.... вот
Ответить