Hallo!
Ich habe in einem älteren Beitrag meine Daten (Temperaturen aus einer SQL) über ein Formular mir Datumsweise anzeigen lassen.
Das hat soweit (nach hilfe) auch gut funktioniert.
Jetzt möchte ich mir die Daten, seperat noch als graph ausgeben lassen.
Ich habe mich mit jpgraph beschäftigt.
Ich bekomme auch einen graph (mit festen Werten) gezeichnet.
Jetzt müssen natürlich noch die Daten aus der sql rein (die ich über mein Eingabe Formular abfrage).
Dies ist mein script.
PHP-Code:
<?php
include ('../dbconnection.php');
$hasFormData = isset($_POST['formSender']);
if ( $hasFormData ) {
// form daten vorhanden
$dateFromWeb = isset($_POST['theDate']) ? $_POST['theDate'] : false;
if ( $dateFromWeb ) {
// datum gesetzt
$validDate = date_create($dateFromWeb);
if ( $validDate ) {
// datum ist valide
$sqlDate = $validDate->format('Y-m-d');
$result = mysql_query("SELECT datum, zeit, wohnzimmer FROM $Table WHERE DATE(datum) = '$sqlDate' ORDER BY zeit", $DatabaseConnect);
if ( $result ) {
$dataForWeb = array();
while ( $current = mysql_fetch_object($result) ) {
$dataForWeb[] = array(
'datetime' => date_create($current->datum.' '.$current->zeit)->format('d.m.Y H:i'),
'temp' => $current->wohnzimmer
);
}
if ( count($dataForWeb) == 0 ) $searchResults = 'Die Suche lieferte 0 Ergebnisse.';
else {
$html = array();
foreach ( $dataForWeb as $row ) {
$html[] = '<p>'.$row['datetime'].' : '.$row['temp'].' °</p>';
}
$searchResults = join($html);
}
}
else {
$searchResults = 'Die Datenbankabfrage lieferte Fehler.';
}
}
else {
$searchResults = 'Die Datumseingabe ist kein reelles Datum.';
}
}
else {
$searchResults = 'Sie muessen ein Datum eingeben.';
}
}
?><!DOCTYPE html>
<html lang="de">
<head>
<title>Datumseingabe</title>
<meta charset="utf-8" />
</head>
<body>
<form target="" method="POST">
<label for="theDate">Datum: </label>
<input type="text" name="theDate" id="theDate" value="" />
<input type="submit" name="formSender" value="senden" />
</form>
<div id="searchResult">
<?php
if ( isset($searchResults) )
include ("/usr/share/jpgraph3/src/jpgraph.php");
include ("/usr/share/jpgraph3/src/jpgraph_line.php");
$graphfile = "graphfile.png";
$ydata = array(17,14,19,21,15,16,21); //hier habe ich die anderen Variablen reingeschrieben
$ydata2 = array(12,13,17,14,21,22,16);
$graph = new Graph(800,300,"auto");
$graph->SetScale("textlin");
$lineplot1=new LinePlot($ydata);
$lineplot2=new LinePlot($ydata2);
$graph->Add($lineplot1);
$graph->Add($lineplot2);
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set("Januar");
$graph->xaxis->title->Set("Zeit");
$graph->yaxis->title->Set("Temperatur");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$lineplot1->SetColor("blue");
$lineplot1->SetWeight(2);
$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);
$graph->yaxis->SetColor("black");
$graph->yaxis->SetWeight(2);
$graph->xaxis->SetColor("black");
$graph->xaxis->SetWeight(2);
$graph->SetShadow();
$graph->Stroke($graphfile);
?>
</div>
</body>
</html>
Wenn Ich jetzt anstelle der "festen" daten in dem array eine Variable angebe, funktioniert der Graph leider nicht.
Kann mir jemand sagen was der Graph an dieser Stelle genau erwartet?
PHP-Code:
$ydata = array(17,14,19,21,15,16,21);
$ydata2 = array(12,13,17,14,21,22,16);
Ich habe es mit der Variable $dataForWeb versucht, da er da doch das array meines datums generiert.
gruss
Tim