Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ERROR);
- ini_set('display_errors', 1);
- date_default_timezone_set('Europe/Moscow');
- setlocale(LC_ALL, 'ru_RU.UTF-8');
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum aus Vergangenheit
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- header("Cache-Control: no-store, no-cache, must-revalidate");
- header("Cache-Control: post-check=0, pre-check=0", false);
- header("Pragma: no-cache");
- require_once('lib/phplot-6.2.0/phplot.php');
- require_once('config.php');
- $mysqli = new mysqli($cfg['db_host'], $cfg['db_user'], $cfg['db_pass'], $cfg['db_base']) or die(mysqli_connect_error());
- $mysqli->set_charset("utf8");
- $data = array();
- $query = "SELECT * FROM `sms` WHERE `date` >= now() - interval 30 day";
- $res = $mysqli->query($query);
- if ($res) {
- while ($row = $res->fetch_assoc()) {
- $name = $row['order_id'] . ' ' . $row['offer'];
- if (!$data[$name]) {
- $data[$name] = array();
- }
- $date = getdate(strtotime($row['date']));
- $hour = $date['hours'] + $date['minutes'] / 60;
- $hours = array('', '', '', '', '', '');
- if ($row['type'] == 'text' && $row['status'] == -1) {
- $hours[0] = $hour;
- } if ($row['type'] == 'text' && $row['status'] == 0) {
- $hours[1] = $hour;
- } if ($row['type'] == 'text' && $row['status'] == 1) {
- $hours[2] = $hour;
- } if ($row['type'] == 'voice' && $row['status'] == -1) {
- $hours[3] = $hour;
- } if ($row['type'] == 'voice' && $row['status'] == 0) {
- $hours[4] = $hour;
- } if ($row['type'] == 'voice' && $row['status'] == 1) {
- $hours[5] = $hour;
- }
- $data[$name][] = array(
- '',
- strtotime($row['date']),
- $hours[0],
- $hours[1],
- $hours[2],
- $hours[3],
- $hours[4],
- $hours[5],
- );
- }
- }
- //var_dump($data);
- /////////
- $data = array_slice($data, 0, 3);
- ///////////
- $w = 1600;
- $h = 280;
- $start_date = time() - 29 * 60 * 60 * 24;
- $end_date = time() + 1 * 60 * 60 * 24;
- //$plot = new PHPlot($w, $h * count($data));
- /////////
- $plot = new PHPlot($w, $h * count($data));
- /////////
- $plot->SetImageBorderType('plain');
- $plot->SetPlotType('points');
- $plot->SetDataType('data-data');
- //$plot->SetDrawBrokenLines($true);
- $plot->SetXLabelType('time', '%d %b');
- $plot->SetXTickIncrement(24 * 60 * 60);
- $plot->SetYTickIncrement(1);
- //$plot->SetYTitle('Часы (по местному времени)');
- $plot->SetYTitle('Часы (MSK)');
- $plot->SetDataColors(array(
- array(178, 34, 34),
- array(255, 165, 0),
- array(30, 144, 255),
- array(178, 34, 34),
- array(255, 165, 0),
- array(30, 144, 255)
- ));
- $plot->TuneYAutoRange(0);
- $plot->SetPointShapes(array('delta', 'delta', 'delta', 'rect', 'rect', 'rect'));
- $plot->SetLegend(array(
- 'текст. ошибка',
- 'текст. неизвестно',
- 'текст. успех',
- 'голос. ошибка',
- 'голос. неизвестно',
- 'голос. успех',
- ));
- $plot->SetUseTTF(true);
- $plot->SetDrawXGrid(true);
- $plot->SetDrawYGrid(true);
- $plot->SetPlotAreaWorld($start_date, 0, $end_date, 24);
- $plot->SetPrintImage(0);
- //$plot->SetMarginsPixels(null, null);
- $i = 0;
- foreach (array_keys($data) as $title) {
- //$plot->SetPlotAreaPixels(40, 40, $w - 40 * 2, $i * $h + $h - 40 * 2);
- $plot->SetPlotAreaPixels(null, $h * $i, null, $h);
- //$plot->SetMarginsPixels(20, 20, 20, 20);
- $plot->SetYTitle("Заказ №$title");
- $plot->SetDataValues($data[$title]);
- $plot->DrawGraph();
- $i++;
- }
- $plot->PrintImage();
- $mysqli->close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement