mehrere Grafiken mit jpgraph und Datenübergabe

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • mehrere Grafiken mit jpgraph und Datenübergabe

    Hallo Gemeinde.

    ich versuche vergeblich, mehrere Grafiken mit jpgraph in einer HTML-Datei zu erstellen. Dazu hole ich einen Satz Daten aus einer Datenbank, speichere sie in '$_SESSION[]' und rufe eine Funktionn auf, die eine Grafik erstellt. Das gleiche mache ich ein zweites Mal mit neuen Daten. Das Ergebnis im Browser ist zweimal das gleiche Bild mit den Daten des zweiten Bildes.

    Source Code

    1. session_start();
    2. # viel anderer Code
    3. $data = GetMonthData ( $show, $db, 'strom_werte' ); // Daten-Array aus der Datenbank
    4. $cfg = array ( 'title' => 'Strom', 'x'=>'Datum', 'y'=>'Verbrauch'); // Zur Konfiguration des Graphen
    5. $_SESSION['data'] = $data; // Daten speichern
    6. $_SESSION['cfg'] = $cfg;
    7. ?>
    8. <table border="1"> <!-- Tabelle zeichnen -->
    9. <tr><td>
    10. <img src="graph.php">Strom</img> <!-- erste Aufruf mit 1. Datensatz -->
    11. </td>
    12. <?php
    13. $data = GetMonthData ( $show, $db, 'wasser_werte' ); // 2. Datensatz abholen
    14. $cfg = array ( 'title' => 'Wasser', 'x'=>'Datum', 'y'=>'Verbrauch'); // Zur Konfiguration des Graphen
    15. $_SESSION['data'] = $data; // 2. Datensatz speichern
    16. $_SESSION['cfg'] = $cfg;
    17. ?>
    18. <td>
    19. <img src="graph.php">Wasser</img> <!-- Graphen mit 2. Datensatz zeichnen -->
    20. </td>
    21. <?php
    Display All


    Hier ist die Funktion zum Erstellen des Graphen:

    Source Code

    1. session_start();
    2. $data = $_SESSION['data'];
    3. $cfg = $_SESSION['cfg'];
    4. $width = 400;
    5. $height = 200;
    6. $graph = new Graph( $width, $height);
    7. $graph->SetScale ('intlin');
    8. $lineplot = new LinePlot ( $data );
    9. $graph->add ( $lineplot);
    10. $graph->title->set ($cfg['title']);
    11. // $graph->xaxis->title->set ($cfg['x']);
    12. // $graph->yaxis->title->set ($cfg['y']);
    13. $graph->Stroke();
    Display All


    Was mache ich falsch bzw. wie geht es richtig?
    FB_Addon_TelNo{
    height:15px !important;
    white-space: nowrap !important;
    background-color: #0ff0ff;}
  • Hallo Torben,

    Torben Brodt wrote:

    Hi, du solltest die Daten nicht in der Session übergeben.
    Übergebe strom_werte bzw wasser_werte als GET Parameter an die graph.php
    Dort kannst du die Daten dann aus der Datenbank laden.
    Ich möchte Datenbank- und Grafik-Funktionen voneinander getrennt haben, soll heißen, die Graphik soll beliebige Daten bekommen können und nicht selber zusammensuchen.
    Vermutlich ist es dann geschickter, das Erstellen der Grafik in eine Funktion zu packen und die Daten als Array zu übergeben. Dann aber die Grafik als Datei speichern und den Link in das <img> Tag zu schreiben.
    Im Moment kann es gar nicht funktionieren, weil die Bilder erst vom
    Benutzer geladen werden, wenn das php script vollständig durchgelaufen
    ist.
    Auf der html Seite sind zwei Bilder, aber zweimal die Gleichen vom letzten script-Aufruf (wasser_werte)

    Danke und Gruß,
    Felix
    FB_Addon_TelNo{
    height:15px !important;
    white-space: nowrap !important;
    background-color: #0ff0ff;}FB_Addon_TelNo{
    height:15px !important;
    white-space: nowrap !important;
    background-color: #0ff0ff;}FB_Addon_TelNo{
    height:15px !important;
    white-space: nowrap !important;
    background-color: #0ff0ff;}