purzelbaum
unsere besten emails
Coder Board Community

 
Boardmenü
Forum
Portal

Registrieren
Suche
Statistik
Mitglieder
Team
Kalender
Sponsoren
Partner

F.A.Q

Lexikon
Amazon Shop
Unterforen Navigation
Hardware
Software
Betriebssysteme
Foren & CMS
EDV Sicherheit
Telekommunikation
Tutorials & FAQ's
Downloads
Boardsuche
Board durchsuchen:

Wer ist Online ?
Zur Zeit im Forum unterwegs:
- 0 Mitglieder
- davon 0 unsichtbar
- 16 Besucher
- 3 Bot(s)
- 19 Benutzer gesamt


Wer ist wo online?
Wer war Online ?
Heute waren 0 Mitglieder im Forum unterwegs.
Linktip's
   Eigene Projekte:
auto-board.info
film-freunde.info
flirt-freunde.info
linkhunter.info
tier-freunde.info
spass-forum.info
buch-freunde.info
mystic-freunde.de
heimwerker-freunde.de

   Befreundete Projekte:
holyhell.de
emsfriends.de

Coder Board Community » Coding » PHP » Grafisches Diagramm mit PHP erzeugen - brauche einen Lösungsansatz » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Grafisches Diagramm mit PHP erzeugen - brauche einen Lösungsansatz
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Grafisches Diagramm mit PHP erzeugen - brauche einen Lösungsansatz Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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:
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.

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

01.09.2008 09:43 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Affilimatch
Zum Anfang der Seite springen

http://www.itratos.de
ShaoKhan ShaoKhan ist männlich
www.Spiegelwelt.com


images/avatars/avatar-198.gif

Dabei seit: 11.06.2003
Beiträge: 315
Herkunft: 127.0.0.1

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Prometheus,

schau dir mal das hier an: http://www.aditus.nu/jpgraph/
Das nutz ich zum Beispiel.

__________________

03.09.2008 13:13 ShaoKhan ist offline E-Mail an ShaoKhan senden Homepage von ShaoKhan Beiträge von ShaoKhan suchen Nehmen Sie ShaoKhan in Ihre Freundesliste auf Fügen Sie ShaoKhan in Ihre Kontaktliste ein AIM-Name von ShaoKhan: nope YIM-Name von ShaoKhan: never MSN Passport-Profil von ShaoKhan anzeigen
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von ShaoKhan am 03.09.2008 um 13:13 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also irgendwie macht mich das ganze langsam richtig irre. Nicht nur das ich immer noch nicht fertig bin damit. Je mehr ich mache desto weniger bin ich mir sicher ob das echt der beste Weg dafür ist.

Für die Skala brauche ich z.B. die Maxwerte aus einer Tabelle. Das heißt die Skala geht von 0 bis 1,5 mal Maxwert aus der Tabelle. Um die Maxwert zu bekommen hab ich mir eine kleine Funktion geschrieben. Ich weiß das ich mit max(feld) arbeiten kann allerdings hat auch das nicht geklappt deshalb hatte ich das ganze so umgebaut, dass es "verständlicher" wird um den Fehler zu sehen.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function getmaxumsatz($wg$monat$jahr)
{
    $tmpstring "umsatzwg".$wg;
    $getmaxumsatz mysql_query(" SELECT * FROM umsatz WHERE monat = '".$monat."' AND jahr = '".$jahr."'");
    while($rowumsatz=mysql_fetch_array($getmaxumsatz))
    {
        if($absmaxumsatz<$rowumsatz['$tmpstring']) $absmaxumsatz $rowumsatz['$tmpstring'];
    }
    return $absmaxumsatz;
}

Die Funktion liefert in jedem Fall 0 egal ob das Feld irgendwas enthält oder nicht. Und ich sehe einfach den Fehler nicht!

Dann würde ich gerne den Umsatz als Linie einzeichnen. Dazu hole ich mir pro Tag den Umsatz aus der Tabelle und errechne zuerst welchen Wert ein Pixel hat um dann für den Umsatz an dem Tag die Pixel zu bekommen. Also gehe ich vom unteren Punkt aus und ziehe die Pixel dem Umsatz entsprechend für diesen Tag ab. Das Problem ist ich kann das nicht testen da ich die Pixel anhand des Maxwerts aufteile und diesen bekomme ich ja wie oben geschrieben nicht. Ich weiß also nicht mal ob das klappt da mir das Skript einen Fehler bringt wenn ich den Teil nicht auskommentiere.

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

11.09.2008 09:15 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Ebay
Zum Anfang der Seite springen

http://www.itratos.de
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nun also ich bin mit dem Thema der Grafiken schon ein gutes Stück weiter. Allerdings habe ich da mal eine grundlegende Frage. Kann es sein, dass ich beim Erzeugen einer Grafik mit PHP nicht auf Funktionen zurück greifen kann welche in einer separaten Datei gelagert sind? Ich habe z.B. eine DB Abfrage, welche ich in eine Funktion packen wollte da ich diese pro Aufruf des Skripts etwa 30 mal brauche. Sobald ich die Funktion dann aber in meine Datei packe bekomme ich keine Werte mehr zurück. Liegt die funktion unverändert in der gleichen Datei in welcher die Grafik erzeugt wird funktioniert es ohne Fehler. Ich könnte mir höchstens noch vorstellen das ich vergessen habe irgend eine Variable zu globalisieren aber das kann es doch normal auch nicht sein oder?

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

20.10.2008 18:58 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
bauser bauser ist männlich
Elite Member


images/avatars/avatar-48.gif

Dabei seit: 15.03.2004
Beiträge: 370

RE: Grafisches Diagramm mit PHP erzeugen - brauche einen Lösungsansatz Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Prometheus

php:
1:
2:
$result mysql_query(" SELECT max(Wert1) FROM Referenzwerte");
$maxwert $result['Wert1'];



dass das so klappt wage ich auch zu bezwifeln, weil dein query gibt dir ja ein result zurück und noch nicht das fertige array. außerdem hast du im SELECT max(Wert1) stehen und nicht wert1. da gibts jetzt zwei möglichkeiten

php:
1:
2:
3:
$result mysql_query(" SELECT max(Wert1) FROM Referenzwerte");
$aResult mysql_fetch_row($result)
$maxwert $aResult['max(Wert1)'];


oder

php:
1:
2:
3:
$result mysql_query(" SELECT max(Wert1) as maxwert1 FROM Referenzwerte");
$aResult mysql_fetch_row($result)
$maxwert $aResult['maxwert1'];


hilft dir zwar bei deinem grafikproblem nicht weiter, aber vielleicht hilfts in zukunft ohne lästige php funktionen auszukommen die dir den maxwert suchen.

__________________
I'm Tony Menthanar! You fuck wit me, you fuckin' wit da best!
23.10.2008 12:00 bauser ist offline E-Mail an bauser senden Beiträge von bauser suchen Nehmen Sie bauser in Ihre Freundesliste auf Fügen Sie bauser in Ihre Kontaktliste ein
Der Betreiber und die Moderatoren vom www.coder-board.de distanzieren sich hiermit ausdrücklich von dem von bauser am 23.10.2008 um 12:00 verfassten Beitrag.
Sollte dieser Beitrag Ihre Rechte verletzen, bitten wir um Benachrichtigung unter Berücksichtigung der dort aufgeführten Möglichkeiten.
Affilimatch
Zum Anfang der Seite springen

http://www.itratos.de
Prometheus Prometheus ist männlich
Administrator


images/avatars/avatar-9.gif

Dabei seit: 09.05.2003
Beiträge: 2.950

Themenstarter Thema begonnen von Prometheus
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich hatte noch ein paar mehr Bugs in meinem Skript. Allerdings inzwischen ist alles soweit gut. Hab es auch hin bekommen meine über 1000 Code Zeilen auf knapp über 300 zu reduzieren und mal etwas bedachter mit Abfragen umzugehen.

Jetzt müsste ich nur noch eine Funktion hin bekommen das ich in meinem Diagramm keine graden Linien mehr hab sondern schöne geschwungene Kurven. Aber das bekomm ich auch noch hin Augenzwinkern

__________________
mfg
Prometheus

Projektoren

Grafikkarten

Fertig-PC´s

TFT´s

Notebooks
Ich gebe keinen Support per PN, Email oder sonstiges!
Alle Fragen können offen hier im Forum behandelt werden.

24.10.2008 21:08 Prometheus ist offline Homepage von Prometheus Beiträge von Prometheus suchen Nehmen Sie Prometheus in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Coder Board Community » Coding » PHP » Grafisches Diagramm mit PHP erzeugen - brauche einen Lösungsansatz

Views heute: 1.863 | Views gestern: 7.372 | Views gesamt: 15.682.145



Impressum

Board Blocks: 46.035 | Spy-/Malware: 1.245.611.449.400.000.000.000.000.000 | Bad Bot: 0 | Flooder: 21.847
CT Security System Pre 6.0.1: © 2006-2007 Frank John

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH

Style & Graphics © 2004-2005 by Technomausi