Ich kämpfe grade damit eine Tabelle mit Werten und Daten grafisch als Diagramm auszugeben. Mir will nur nicht recht einfallen wie ich das am besten realisiere.
Meine Tabelle ist folgendermaßen aufgebaut.
Felder: Tag, Monat, Jahr, Wert1, RefID, RefTable
Nun möchte ich das Diagramm so aufbauen, dass die untere Skala die Tage betrifft und die andere den Betrag. Das heißt ich muss zuerst mal den Zeitraum festlegen. Also beim Aufrufen soll der aktuelle Monat und das aktuelle Jahr genommen werden. Für diesen Monat dann alle Tage und für jeden Tag so gesehen einen Punkt im Diagramm. Jetzt brauche ich den maximalen Wert der möglich sein soll + sagen wir 10% damit das nicht doof aussieht. Habe ich ein Bild von 640 mal 512 Bildpunkten muss ich abzüglich bisl Ramen und sowas also 600 Pixel auf die Tage aufteilen und 480 Pixel auf die Werte. Und dann muss ich eigentlich nur noch meine Tabelle durchlaufen und für jeden Tag die eingetragenen Werte in das Diagramm übertragen.
Klingt eigentlich einfach, aber bereitet mir Kopfzerbrechen. Hier mal ein paar Beispiele.
|
PHP Source code
|
1
2
|
$result = mysql_query("SELECT max(Wert1) FROM Referenzwerte");
$maxwert = $result['Wert1'];
|
Das will schon mal nicht so wie es soll. Ich weiß das der maximale Wert 23500 ist und den Wert bekomme ich weder so noch auf anderem Weg aus der Tabelle.
Zusätzlich zu dem ganzen möchte ich einen zweiten Strich in meinem Diagramm der den kommulierten Wert anzeigt. Heißt es gibt eine weitere Tabelle in der ebenfalls Zahlen stehen und pro Tag gibt es jeweils dann einen Wert in beiden Tabellen. Die Zahl die ich ausgeben möchte berechnet sich aus Tabelle1.Wert1*100/Tabelle2.Wert1 und soll aus dem Vormonat schon als Übertrag berücksichtigt werden damit das Diagramm nicht bei 0 anfängt.
Nun, ich hoffe mir kann da einer ein paar Ideen geben wie ich das so löse, das ich nicht auch noch 20 Abfragen auf die DB benötige da die Datenbank so schon mächtig groß ist und wenn ich dort jetzt auch noch x Abfragen erzeuge wird das ganze langsamer als es so schon ist.
EDIT:
So, ich habe es (mehr oder weniger) jetzt hin bekommen. Meine DB Abfrage liefert mir noch nicht die Werte die ich gerne hätte aber gut, das hat nichts mit der Bilderzeugung zu tun. Das ganze klappt jetzt wunderbar.