Hallo zusammen,
versuche gerade über php und jpgraph Werte aus einer sqlite Datenbank zu visualisieren. Habe mir da diverses zusammen gesucht.
Für die Datenbank abfragen habe ich mir nach der Anleitung hier (Datenbanken mit SQLite) eine phpDBfunction.php gebaut:
[code=php]
<?php
setlocale (LC_TIME, "de_DE");
// DB connect
function db_con($DBfile) {
if (!$db = new PDO("sqlite:$DBfile")) {
$e="font-size:23px; text-align:left; color:firebrick;
font-weight:bold;";
echo "<b style='".$e."'>Fehler beim öffnen der Datenbank
$DBfile:</b><br/>";
echo "<b style='".$e."'>".$db->errorInfo()."</b><br/>";
die;
}
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $db;
}
// DB Query
function db_query($sql) {
global $db;
$result = $db->query($sql) OR db_error($sql,$db->errorInfo());
return $result;
}
// DB errors
function db_error($sql,$error) {
die('<small><font color="#ff0000"><b>[DB
ERROR]</b></font></small><br/><br/><font
color="#800000"><b>'.$error.'</b><br/><br/>'.$sql.'</font>');
}
// Add HTML character incoding to strings
function db_output($string) {
return htmlspecialchars($string);
}
// Add slashes to incoming data
function db_input($string) {
if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string);
}
return addslashes($string);
}
?>
[/php]
Aus Dem Tutorial zu jpgraph (http://www.binnendijk.net/jpgraph/index.php?page=line_1) habe ich mir das Diagramm gezogen. Nach dem anpassen der Pfade, bekomme ich auch ein Diagramm angezeigt. Jetzt habe ich angefangen die DB-Abfrage einzubauen. Nach diversen Versuchen habe ich herausgefunden, dass alleine schon das include der phpDBfunction.php dazu führt, das ich den Fehler "The image (...) cannot be displayed because it contains errors" bekomme. Interessanterweise funktioniert eine DB-Abfrage mit "echo" Ausgabe?
Kann mir hier jemand helfen?
Hier noch der Code:
[code=php]
<?php
include ("jpgraph/jpgraph.php");
include ("jpgraph/jpgraph_line.php");
include ("phpDBfunction.php");
// Die Werte der 2 Linien in ein Array speichern
$ydata = array(11,3,8,12,5,1,9,13,5,7);
$ydata2 = array(1,19,15,7,22,14,5,9,21,13);
// Grafik generieren und Grafiktyp festlegen
$graph = new Graph(300,200,"auto");
$graph->SetScale("textlin");
// 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("Example 4");
$graph->xaxis->title->Set("X-title");
$graph->yaxis->title->Set("Y-title");
$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();
?>
[/php]
Vielen Dank
Markus