<?php
include ("jpgraph.php");
include ("jpgraph_line.php");
$graph = new Graph(300,200,"auto");
$graph->SetScale("textlin");
$ydata = array(4,6,8,10);
$lineplot=new LinePlot($ydata);
$graph->Add($lineplot);
$graph->title->Set("Temperaturverlauf");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->Set("Zeit; 1 = 6min");
$graph->yaxis->title->Set("Temperatur in Grad Celsius");
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->img->SetMargin(40,20,20,40);
$lineplot->SetColor("blue");
$lineplot->SetWeight(2);
$graph->yaxis->SetColor("red");
$graph->yaxis->SetWeight(2);
$graph->SetShadow();
$graph->Stroke();
?>
Nun möchte ich aus meiner PostgreSQL Datenbank die Daten für den Array holen und das Ziel wäre es ein dynamisches Diagram zu erstellen welches sich aktualisiert sobald neue Wetterdaten in die Datenbank gespeichert werden. Hat mir dazu jemand ein paar Ideen?
Als Beispiel dass immer die 10 neuesten Einträge in das Diagram übernommen werden.
In der Tabelle befinden sich ein Primary Key (Timestamp) und die Wetterdaten
Das Timestamp Format ist dieses hier. “2008-03-12 15:03:00+01”
Du hast eine DB, einen Webserver, ein PHP und einen Client mit Browser. Außerdem kommen, wie auch immer, Daten in die DB.
Die kann, via Listen/Nofify, ein externes Event auslösen. Aber was nicht gehen wird: dem Browser des Clients sagen, es möge die Seite neu laden.
Der Client wird also, wie auch immer, die Seite neu anfordern müssen. Dann kann der Indianer, ähm Apache, via PHP die Daten neu vom DB-Server anfordern. Für das SQL, das Du brauchst, die letzten 10 Daten zu holen, wirst Du die Begriffe LIMIT, ORDER, DESC sinnvoll in Deine Abfrage einbauen müssen.
quasi das gleiche … das war schon immer so … deswegen kriegst du ja auch immer gleich nach dem du im web z.B formular-daten abschickst “irgendwann” ein ergebnis … dieses GET bzw POST (was ja technisch dass gleiche ist) arbeitet ja synchron … auch wenn HTTP verbindungslos ist.
ich denke aber ohnehin, dass er es etwas “komplizierter” braucht … was fuer ihn bedeutet dass er wahrscheinlich am ende nicht ohne JavaScript gefrickel umherkommt.
– NACHTRAG —
denn so wie ich es inzwischen verstehe kommen die input-daten aus einer anderen quelle … nicht von da wo das diagram angezeigt wird … das macht es kompliziert … und da hilft nur “pollen” … oder bissel fantasiereicher applet flash etc. da kann man veilleicht die client-seite eleganter dazu bewegen mal nachzugucken obs “neue” daten gibt …
Ja, das ist so geplant dass die Seite neu angefordert wird. Wie ich die letzten 10 Einträge abfrage habe ich auch verstanden, ich verwende als Beispiel diesen Code:
SELECT weatherdata FROM inside_temp ORDER BY savetime DESC LIMIT 10
Wenn ich nun das Resultat dieser Abfrage in eine Variable, beispielsweise $resultat speichere kann ich dann diese Variable für den Array verwenden? Das hat bei mir immer Fehler verursacht.
Ja, man kann das speichern. Nein, wir können nicht helfen, solange die Fehlermeldung geheim ist. Das ist außerdem offenbar eher ein PHP-Programmierfehler auf Layer 8.
Vielleicht. Möglicherweise wird man Dich dort auffordern, via Google mal Beispielcode für das Zusammenspiel von PostgreSQL und PHP zu suchen. Vorausschauend, wie ich bin, hab ich Dir das mal schon abgenommen und u.a. dies hier gefunden: PostgreSQL - Informationen, Tutorials, Ressourcen [PostgreSQL und PHP] .Neben ca. 750.000 anderen Seiten.