Graphen mit jpgraph über schleife
Schnaps
- php
0 dedlfix
Hallo
Ich möchte gerne verschiedene Graphen mit jpgraph erstellen lassen.
Wenn ich nur einen Graphen nehme klappt das auch , aber ich kann nicht mehrere hintereinander in einer Schleife erstellen lassen.
Erster Versuch:
jpgraph hat ja eine normale Datei in der der Graph erzeugt wird.
und eine Datei die die erste Datei als Bild wiefolgt aufruft.
<img src="grapik.php">
Ich habe mir dann gedacht, das ich diese Ausgabe in Schleife packe und den Titel der Grafik als Url-Parameter übergebe.
Also so:
<?
$mysql_tabelle=array('eisen','chemie','stahl','vv4a','eis','wasser','energie','pinguine');
foreach ($mysql_tabelle as $tabelle_name){
echo "<img src="grafik.php?tabelle_name=$tabelle_name"><br>\n";
}
?>
Es werden zwar auch 8 PLatzhalterbilder angezeigt, aber mehr halt eben nicht.
Hier mal der Code der Datei graphik.php
<?php
include ("jgraph/src/jpgraph.php");
include ("jgraph/src/jpgraph_line.php");
require_once("dbconnect.php");
$sql="SELECT * FROM ".$\_REQUEST['tabelle\_name']."
";
echo $sql;
$query=mysql_query($sql);
while ($chemie=mysql_fetch_array($query)){
$ydata[]=$chemie['ankauf'];
$ydata2[]=$chemie['verkauf'];
}
$max=max($ydata2)+(max($ydata2)/10);
$min=min($ydata)-(min($ydata)/10);
$ueberschrift=strtoupper($_REQUEST['tabelle_name'])." Kurse";
// Grafik generieren und Grafiktyp festlegen
$graph = new Graph(600,450,"auto");
$graph->SetScale("textlin",$min,$max);
// Die Zwei Linien generieren
$lineplot=new LinePlot($ydata);
$lineplot2=new LinePlot($ydata2);
// Die Linien zu der Grafik hinzufügen
$graph->Add($lineplot);
$graph->Add($lineplot2);
// Grafik Formatieren
$graph->img->SetMargin(40,20,20,40);
$graph->title->Set($ueberschrift);
$graph->xaxis->title->Set("Uhrzeit");
$graph->yaxis->title->Set("Kurse");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$lineplot->SetColor("blue");
$lineplot->SetWeight(2);
$lineplot2->SetColor("orange");
$lineplot2->SetWeight(2);
$graph->yaxis->SetColor("red");
$graph->yaxis->SetWeight(2);
$graph->SetShadow();
// Grafik anzeigen
$graph->Stroke();
?>
Die Pfade der includes oben stimmen, da die Datei ohne Schleife funktioniert.
Das echo $sql; wird auch nicht ausgegeben.
Komme hier wirklich nicht mehr weiter, wäre nett wenn mir einer von euch auf die Sprünge hilft.
Vielleicht bin ich mit meiner Methode ja auch auf dem Holzweg.
Gruß
Schnaps
echo $begrueszung;
echo "<img src="grafik.php?tabelle_name=$tabelle_name"><br>\n";
Hier mal der Code der Datei graphik.php
[...]
echo $sql;
Wenn das Script eine Grafik zurückliefern soll, darfst du auch nur die Grafik und nichts anderes zurückgeben.
Wahrscheinlich musst du auch noch den Content-Type mittels einer entsprechenden Header-Zeile angeben, es sei denn, der da
// Grafik anzeigen
$graph->Stroke();
oder irgend ein anderer Teil von $graph tut dies schon.
Eine weitere Möglichkeit ist z.B. das direkte, nicht irgendwo eingebundene Aufrufen des Grafik-Scripts, und dann schauen, was da der Webserver liefert.
echo "$verabschiedung $name";