Во-первых, мои знания по кодированию все еще являются базовыми, поэтому, пожалуйста, будьте терпеливы.
Я пытаюсь построить график из базы данных MySQL. База данных MySQL выглядит так
mysql> SELECT * FROM usage_status_difference;
+-----+---------------------+------------+-----------+
| id | on | cold_water | hot_water |
+-----+---------------------+------------+-----------+
| 146 | 2014-04-26 02:00:02 | 3.14 | 1.86 |
| 147 | 2014-05-26 02:00:01 | 2.69 | 1.63 |
| 148 | 2014-06-26 02:00:01 | 3.58 | 1.41 |
| 149 | 2014-07-26 02:00:01 | 1.46 | 0.61 |
| 152 | 2014-08-26 02:00:01 | 3.03 | 1.47 |
| 153 | 2014-09-26 02:01:02 | 2.39 | 1.47 |
| 154 | 2014-10-26 02:01:02 | 3.89 | 1.50 |
| 155 | 2014-12-03 17:52:27 | 1.76 | 1.88 |
| 156 | 2014-12-26 02:01:01 | 1.50 | 0.98 |
| 157 | 2015-01-26 02:01:01 | 4.19 | 2.44 |
| 158 | 2015-02-26 02:01:02 | 3.38 | 2.07 |
| 159 | 2015-03-26 02:01:01 | 2.67 | 1.79 |
| 161 | 2015-04-26 09:46:07 | 2.48 | 1.73 |
| 162 | 2015-05-26 02:01:02 | 2.67 | 1.77 |
+-----+---------------------+------------+-----------+
Используя примеры Jpgraph, мне удалось вытащить данные и создать график в два столбца. Это код, который я использовал
<?php // content="text/plain; charset=utf-8"// $Id: groupbarex1.php,v 1.2 2002/07/11 23:27:28 aditus Exp $
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_bar.php');
// MYSQL database
$con=mysqli_connect("localhost","xxxx","xxxxx","xxxxx");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM `usage_status_difference` WHERE `on` >= '2015-01-01' AND `on` <= '2015-12-01'");
while($row = mysqli_fetch_array($result)) {
$datay1[]= $row["cold_water"];
$datay2[]= $row["hot_water"];
// $count[]= $row["on"]
}
$graph = new Graph(450,200,'auto');
$graph->SetScale("textlin");
$graph->SetShadow();
$graph->img->SetMargin(40,30,40,40);
$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
$graph->xaxis->title->Set('Year 2015');
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->title->Set('Poraba Vode');
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$bplot1 = new BarPlot($datay1);
$bplot2 = new BarPlot($datay2);
$bplot1->SetFillColor("orange");
$bplot2->SetFillColor("red");
$bplot1->SetShadow();
$bplot2->SetShadow();
$gbarplot = new GroupBarPlot(array($bplot1,$bplot2));
$gbarplot->SetWidth(0.8);
$graph->Add($gbarplot);
$bplot1->value->Show();
$bplot2->value->Show();
$graph->Stroke();
?>
Я хотел бы, чтобы на xaxis я брал данные из «ON» и имел их как Xaxis. Теперь он только начинается с января, февраля и так далее.
структура таблиц
DESCRIBE usage_status_difference;
+------------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| on | timestamp | NO | | CURRENT_TIMESTAMP | |
| cold_water | float(10,2) | NO | | NULL | |
| hot_water | float(10,2) | NO | | NULL | |
+------------+-------------+------+-----+-------------------+----------------+
Ценю любую помощь.
Задача ещё не решена.
Других решений пока нет …