• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

graph problem

daschifahrer

Neues Mitglied
hallo leute,
ich hab mir heute nen code für nen graphen rauskopiert und für mich abgeändert
seit ich das ganze aber mit datenbank machen will haut gar nix mehr und es kommt immer die meldung :
graph.php
Die Grafik "http://michipage.mi.ohost.de/graph.php" kann nicht angezeigt werden, weil sie Fehler enthält.

ich weiß aber nicht was des bedeutet bzw. wo der fehler liegt ....
hier mal der code vll könnt ihr mir ja helfen
ich hab die vermutung das vll i-was mit dem array nicht stimmt -.-
PHP:
<?php

mysql_connect("localhost", "----", "----")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("michipage");

//biene

$result = mysql_query("SELECT * FROM camel WHERE name='Biene'");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$graphbiene=array($row[2], $row[3], $row[4], $row[5], $row[6], $row[7], $row[8], $row[9], $row[10], $row[11], $row[12], $row[13], $row[14], $row[15], $row[16], $row[17], $row[18], $row[19], $row[20], $row[21], $row[22]);
}

print_r( $graphbiene);


//lukas
$result = mysql_query("SELECT * FROM camel WHERE name='Lukas'");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$graphbiene=array($row[2], $row[3], $row[4], $row[5], $row[6], $row[7], $row[8], $row[9], $row[10], $row[11], $row[12], $row[13], $row[14], $row[15], $row[16], $row[17], $row[18], $row[19], $row[20], $row[21], $row[22]);
}


// Add values to the graph
//$graphbiene=array(250,240,230,240,250,260,250,260,250,250,240,250,260,270,290, 280, 270, 260, 250, 240, 250);

// Define .PNG image

header("Content-type: image/png");

$imgWidth=500;

$imgHeight=250;

// Create image and define colors

$image=imagecreate($imgWidth, $imgHeight);

$colorWhite=imagecolorallocate($image, 255, 255, 255);
//rgb
$coloryellow=imagecolorallocate($image, 255, 255, 0); 

$colorGrey=imagecolorallocate($image, 192, 192, 192);

$colorBlue=imagecolorallocate($image, 0, 0, 255);

// Create border around image

imageline($image, 0, 0, 0, 250, $colorBlue);//links

imageline($image, 0, 0, 500, 0, $colorGrey);//oben

imageline($image, 500, 500, 500, 0, $colorGrey);//rechts

imageline($image, 0, 250, 250, 500, $colorBlue);//unten



// Create grid

for ($i=1; $i<250; $i++){

imageline($image, $i*12.5, 0, $i*12.5, 250, $colorGrey);//quer

imageline($image, 0, $i*12.5, 500, $i*12.5, $colorGrey);

}

imageline($image, 0, 125, 500, 125, $colorBlue); // links, oben, rechts, unten, farbe

// Add in graph values

for ($i=0; $i<20; $i++){

imageline($image, $i*25, (250-$graphbiene[$i]), ($i+1)*25, (250-$graphbiene[$i+1]), $coloryellow);
imageline($image, $i*25, (375-$graphlukas[$i]), ($i+1)*25, (375-$graphlukas[$i+1]), $colorBlue);

}

// Output graph and clear image from memory

imagepng($image);

imagedestroy($image);

?>
mfg daschifahrer
 
Zuletzt bearbeitet:
Werbung:
Du hast einen Ausgabebefehl (print_r( $graphbiene);) vor dem header-Aufruf. Das ist nicht zulässig und führt zu einer Fehlermeldung, die dann im Zweifel im "Inhalt" des Bildes steht. Setz testweise den header-Befehl ganz nach oben, ändere die Ausgabe auf text/html oder text/plain, rufe die Datei direkt mit passenden Parametern auf und prüfe, ob weitere Fehlermeldungen angezeigt werden.
 
Werbung:
Zu Beginn der Datei steht eine Leerzeile, die da nicht hingehört. Hast du vor dem <?php vielleicht einen Zeilenumbruch?
 
Das ist jedenfalls das Problem. Ich habe die zwei Bytes gerade entfernt und sehe jetzt ein Bild mit einer blauen Linie und einer gelben Linie und jeder Menge Rechenkästchen.

Setzt sonst den header wieder auf text/plain und lass dir per print_r die Arrays ausgeben. Irgendwo dort steht ein Zeilenumbruch, der nicht reingehört. Vielleicht auch nach dem Ende der Datei, also hinter dem ?>.
 
Werbung:
was für 2 bytes?
sry steh n bissl am schlauch abe rich schau nomal nach ;)

//edit jez gehts oO keine ahnung warum
was habe ich geändert?
ich hab die dateien in der datenbank verkleinert
^^ wird wohl daran liegen ;)
 
Zuletzt bearbeitet:
Der Dateiinhalt begann mit den beiden beides Bytes 0D 0A bzw. 13 10 bzw. \r\n bzw. Windows-Zeilenumbruch. Laut Wikipedia muss eine PNG-Datei jedoch mit 89 50 4E 47 beginnen. Der muss sich irgendwo reingeschlichen haben.

Na, immerhin geht es. ;)
 
hey
habn neues problem
und zwar geht es diesmal um die farben
ich hab sie ja deffiniert und in einer datenbank als variable abgespeichert
also in da db steht jez z.B. $colorgreen
jedoch ist alles schwarz und ein graph hat gar keine farbe -.- kennt ihr das problem
ps: weiß einer wie ich in das bild schreiben kann? das also nach jedem graphen ein name steht?
code:

PHP:
<?php
header("Content-type: image/png");

mysql_connect("localhost", "---", "---")
    or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("michipage");





$imgWidth=500;

$imgHeight=500;

$grid=$imgHeight/20;

$half=$imgHeight/2;

$graphwert=$imgWidth/2+$half;

// Create image and define colors

$image=imagecreate($imgWidth, $imgHeight);

$colorWhite=imagecolorallocate($image, 255, 255, 255);
//rgb
$coloryellow=imagecolorallocate($image, 255, 255, 0); 

$colorGrey=imagecolorallocate($image, 192, 192, 192);

$colorBlue=imagecolorallocate($image, 0, 0, 255);

$colorBlack=imagecolorallocate($image, 0, 0, 0); 

$colorgreen=imagecolorallocate($image, 0, 100, 0);

// Create border around image

imageline($image, 0, 0, 0, $imgHeight, $colorBlue);//links

imageline($image, 0, 0, $imgWidth, 0, $colorGrey);//oben

imageline($image, $imgWidth, $imgWidth, $imgWidth, 0, $colorGrey);//rechts

imageline($image, 0, $imgHeight, $imgHeight, $imgWidth, $colorGrey);//unten



// Create grid

for ($i=1; $i<$imgHeight; $i++){

imageline($image, $i*$grid, 0, $i*$grid, $imgHeight, $colorGrey);//quer

imageline($image, 0, $i*$grid, $imgWidth, $i*$grid, $colorGrey);

}

imageline($image, 0, $half, $imgWidth, $half, $colorBlue); // links, oben, rechts, unten, farbe

// Add in graph values

//biene

$result = mysql_query("SELECT * FROM camel");
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
$graph=array($row[2], $row[3], $row[4], $row[5], $row[6], $row[7], $row[8], $row[9], $row[10], $row[11], $row[12], $row[13], $row[14], $row[15], $row[16], $row[17], $row[18], $row[19], $row[20], $row[21], $row[22]);

$farbe=$row[23];

for ($i=0; $i<20; $i++){

imageline($image, $i*25, ($graphwert-$graph[$i]), ($i+1)*25, ($graphwert-$graph[$i+1]), $farbe);


}

}



// Output graph and clear image from memory

imagepng($image);

imagedestroy($image);


?>
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben