Pagina 1 van 1

MySQL, VWS en JPGRAPH

Geplaatst: 04 feb 2012, 17:14
door Dropje
Ik probeer al een tijdje mbv JPGRAPH grafieken te genereren vanuit mijn MySQL db.
Op zich gaat het goed maar kijg ik niet voor elkaar om de "RecDate" (timestamp) van de waarnemingen als X-as te gebruiken. Ik gebruik als weersoftware VWS en de "RecDate" heeft het volgende format: yyyymmddhhmm
Ik heb niet voldoende PHP kennis. Wie kan me helpen? Alvast dank.
Hieronder een deel van de code:
....


Code: Selecteer alles
$db = mysql_connect($dbhost, $dbuser, $dbpassword);
if (!$db)
   {
   die ('could not connect: '. mysql_error());
   }
mysql_select_db($dbdatabase, $db);
//
$sql = "SELECT * FROM `weather` ORDER BY `weather`.`RecDate` DESC LIMIT 0 , 144 ;";
$result = mysql_query($sql);

// Some data

while ($row=mysql_fetch_array($result)) {
    $datay[] = $row['OutdoorTemperature'];

   $datax[] = $row['RecData'];

   }

//
//   array_push($datay, $row['OutdoorTemperature']);
//   array_push($datax, $row['RecData']);

$ydata=array_reverse($datay);
$xdata=array_reverse($datax);
//datum omzetten
//$xdata=strftime('%y%m%d%H%m');
list($year,$mon,$day,$hour,$min)=sscanf($xdate,"%4s%2s%2s%2s%2s");
$RecDate = ("$year$mon$day$hour$min");

// Create the graph. These two calls are always required
$graph = new Graph(540,300);
$graph->SetScale('datelin');
$graph->title->Set("Temperatuur van de laatste 24 uur");
//$graph->xaxis->SetTickLabels($RecDate);
$graph->xaxis->SetTextLabelInterval(2);
$graph->xaxis->SetPos( 'min' );

// Create the linear plot
$lineplot=new LinePlot($ydata,$RecDate);
$lineplot->SetColor('blue');

// Add the plot to the graph
$graph->Add($lineplot);

// Display the graph
$graph->Stroke();
mysql_close($db);
?>

zo ziet het er nu uit http://www.theo-hamburger.nl/jpgraph/examples/temperature_1.php

Re:MySQL, VWS en JPGRAPH

Geplaatst: 04 feb 2012, 19:33
door wsEpe
Ik zou zoiets andersom doen; eerst tijd omzetten en dan in een array doen ipv andersom. Ik weet niet welke data je precies in de x-as wilt hebben, maar hieronder een voorbeeld hoe je yyyymmddhhmm (bijv. 201202041930) omzet naar H:i (bijv. 19:30).

Code: Selecteer alles
$timestamp = $row['RecData'];  
$timestamp_unix = strtotime ($timestamp);
$timestamp_hi = date("H:i", $timestamp_unix); 
array_push($datax, $timestamp_hi); 

Re:MySQL, VWS en JPGRAPH

Geplaatst: 05 feb 2012, 09:40
door Dropje
Dank voor het advies, ga er mee aan de gang. Eerste vlugge "cut&paste" had nog niet het gewenste effect.
vrgr
Theo