Probleme mit JPGraph

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit JPGraph

    Huhu,

    ich habe Probs mit JPGraph und kann einfach nicht glauben, dass diese nicht zu lösen sind. Habe schon stundenlang geforscht, finde aber keine Antwort. Ich hoffe ihr könnt mir helfen!

    Also, ich möchte 3 verschieden Diagramme zeichnen lassen. Dazu übergebe ich die Werte der graph.php in einer Session-Variable.
    Diese Session-Variable wird in einer Schleife immer neu gesetzt, sodass mir theoretisch verschiedene Diagramme ausgegeben werden.

    Ich bekomme zwar mehrere Graphen angezeigt, aber immer mit den Werten des letzten Schleifendurchlaufs, also immer gleiche Graphen, obwohl der Titel aber immer der richtige ist.

    Woran kann es liegen, was mache ich falsch?
    Ich möchte nicht einem Skript 3 Arrays übergeben, da ich dann zwischen der Dias keinen Text mehr ausgeben kann.

    Hoffe mir kann einer helfen!

    Gruß
    der Picker

  • #2
    Bitte etwas Code posten.

    Kommentar


    • #3
      Oki

      Grafik-Datei
      Code:
      <?php
      session_start();
      // JPGraph Library einbinden
      include ("jpgraph-2.2\src\jpgraph.php");
      include ("jpgraph-2.2\src\jpgraph_pie.php");
      include ("jpgraph-2.2\src\jpgraph_pie3d.php");
      
      
      
      // Grafik generieren
      $data = $_SESSION[prozent];
      $tick = $_SESSION[tick];
      $graph = new PieGraph(400,200,"auto");
      
      
      $p1 = new PiePlot3D($data);
      
      
      $p1->SetCenter(0.4);
      $p1->SetLegends($tick);
      $p1->SetAngle(45);
      
      $graph->Add($p1);
      $graph->Stroke();
      
      
      ?>
      Skript
      [CODE]
      <?php
      include ("jpgraph-2.2\src\jpgraph.php");
      include ("jpgraph-2.2\src\jpgraph_bar.php");
      session_start();
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content Type" content="text/html; charset=iso-8859-1;" />
      <title>Wissensdatenbank - Datensatz hinzufügen</title>
      <style type="text/css">
      <!--

      .Stil2 {color: #CCCCCC; font-weight:bold;}
      .Stil3 {color: #FFFF00}

      a:visited { text-decoration:none; font-weight:bold; color:#CCFFFF; }
      a:focus { text-decoration:none; font-weight:bold; background-color:#080; }
      a:hover { text-decoration:none; font-weight:bold; background-color:#669999; }

      pre
      {
      color:#ccffff;
      }
      img{
      display:block;
      margin:0 auto;
      }
      --!>
      </style>
      </head>
      <?php
      $dblink = mysql_connect("localhost","root","");



      switch($_GET[id]) {
      case "1": auswertungKosten();
      break;
      case "2": auswertungFehlercode();
      break;
      case "3": auswertungErsatzteil();
      break;
      }

      function auswertungKosten() {
      global $odbclink;
      global $dblink;
      for ($i=0;$i<count($_SESSION[code]);$i++) {
      $sql = "SELECT a.rep_wert, a.relevanz FROM auftrag a, geraet g, wdbqf_code_has_auftrag wa "
      . "WHERE a.hersteller = wa.hersteller "
      . "AND a.hersteller = g.hersteller "
      . "AND wa.aufnr = a.aufnr "
      . "AND a.geraete_nr = g.geraete_nr "
      . "AND wa.wdbqf_code = '".$_SESSION[code][$i]."' "
      . "AND wa.hersteller = '04' "
      . "AND g.bez = '".$_SESSION[gerät] ."'";

      $result = mysql_db_query("Hugo",$sql,$dblink);
      while ($row = mysql_fetch_row($result)) {
      switch ($row[1]) {
      case "H": $kostenH[] = $row[0]; break;
      case "M": $kostenM[] = $row[0]; break;
      case "N": $kostenN[] = $row[0]; break;
      }
      }
      }
      if (isset($kostenH))
      diagrammZeichnen($kostenH,"kosten");
      if (isset($kostenM))
      diagrammZeichnen($kostenM,"kosten");
      if (isset($kostenN))
      diagrammZeichnen($kostenN,"kosten");
      }


      function diagrammZeichnen($werte,$modus) {
      if ($modus == "kosten") {
      foreach ($werte as $preis) {
      $i = (int)($preis / 50);
      $rep_wert[$i] += 1;
      }
      foreach ($rep_wert as $anzahl) {
      $prozent[] = (int)(($anzahl * 100)/count($werte));
      }

      $intMin = (int)min($werte) + (50 - bcmod(min($werte),50));
      $intMax = (int)max($werte) + (50 - bcmod(max($werte),50));
      for ($i=1;$i<=(count($rep_wert)+1);$i++) {
      $test1 = $intMin*$i;
      $test2 = ($intMin*$i)-50;
      $test = $test2 .'-'.$test1;
      $tick[] = $test;
      }
      $_SESSION[prozent] = $prozent;
      $_SESSION[tick] = $tick;

      }
      for ($i=1;$i<=count($_SESSION
      Code:
      );$i++) {
            echo '<img src="kostengrafik1.php">';
           
           }
         }
        
      ?>
      </html>

      Kommentar


      • #4
        Man, man, man

        Es kann doch nicht sein, dass ich 3 Bilder mit 3 verschiedenen Arrays aufrufen muss, um 3 verschiedene Diagramme zeichnen zu lassen.

        Ich persönlich finde JPGraph sch... und ich dachte man bekommt in einem Forum wo es vor Entwicklern wimmelt mal einen Denkanstoß!

        Naja, so läuft der Hase halt

        Grüße

        Kommentar


        • #5
          PHP-Code:
          // ...
            
          }
                 
          $_SESSION[prozent] = $prozent;
                 
          $_SESSION[tick] = $tick;    
               
               }
               for (
          $i=1;$i<=count($_SESSION[code]);$i++) {
                echo 
          '<img src="kostengrafik1.php">';
               
               }
          // ... 
          Du schreibst deine Werte immer wieder an die Positionen prozent und tick. Wenn du drei Bilder erzeugst, ist doch wohl klar, warum das nicht funktioniert, oder nicht! Die Bilder werden ja erst nach Abschluss des PHP-Skriptes erzeugt, nachdem du dem Browser drei mal das img-Tag geschickt hast.
          Lösung wäre etwas in der Richtung:
          PHP-Code:
          $_SESSION[$i]['prozent'] = $prozent;
          echo 
          '<img src="kostengrafik1.php?i='.$i.'">'
          Und beim Ploten dann
          PHP-Code:
          $data $_SESSION[$_GET['i']]['prozent']; 

          Kommentar


          • #6
            Dank dir

            Hatte so eine ähnliche Idee, aber schlechter umgesetzt...

            Manchmal ist man einfach zu vernagelt, um was hinzukriegen.

            Werd das gleich mal ausprobieren...

            Gruß

            Kommentar

            Lädt...
            X