Hi,
ich würde gerne meine Nutzerzahlen grafisch in einem Diagram darstellen. Habe Monate damit verbraucht ein geeignetes Tutorial zu finden, habs dann endlich gefunden, es ging auch alles, bis ich am Umstrukturieren der Ordner und Dateien war...
Jetzt, wieder Monate später, finde ich das Tutorial nicht mehr... Fehlermeldung gibt es auch keine, anscheinend funktioniert alles. Einzige Fehlermeldung bekomme ich auf der Seite selbst: The image [...] can not be displayed because it contains errors. Aber welche errors weiß ich nicht, steht nichts...
code zum Erstellen des Diagrams:
Die DB-Abfragen, welche included sind (jetzt mit __DIR__^^) funktionieren auch. Ich hab einfach keinen Plan mehr ._.
ich würde gerne meine Nutzerzahlen grafisch in einem Diagram darstellen. Habe Monate damit verbraucht ein geeignetes Tutorial zu finden, habs dann endlich gefunden, es ging auch alles, bis ich am Umstrukturieren der Ordner und Dateien war...
Jetzt, wieder Monate später, finde ich das Tutorial nicht mehr... Fehlermeldung gibt es auch keine, anscheinend funktioniert alles. Einzige Fehlermeldung bekomme ich auf der Seite selbst: The image [...] can not be displayed because it contains errors. Aber welche errors weiß ich nicht, steht nichts...
code zum Erstellen des Diagrams:
PHP-Code:
header("Content-type: image/png");
$imgWidth = '750';
$imgHeight = '500';
$theImage = imagecreate($imgWidth, $imgHeight);
$backgroundcolor = imagecolorallocate($theImage, 0, 0, 0);
$details = imagecolorallocate($theImage, 255, 255, 255);
$green = imagecolorallocate($theImage, 64,255, 0);
# title
$text = "Daily Views";
$fontsize = 5;
imagestring($theImage, $fontsize, 0, 0, $text, $green);
# subtitle
$text = "2020/12/28 - ".date("Y/m/d",strtotime("-1 days"));
$fontsize = 4;
imagestring($theImage, $fontsize, 0, 25, $text, $green);
#subsubtitle
require_once(__DIR__ . '/../../functions/select/diagram/values.php');
$values = selectValuesDiagram();
$maxHeight = 0; //nicht sicher, ob diese Zeile stimmt; mir kam der Fehler, dass maxheight nicht definiert ist, also habe ich nachgeschaut und nach meiner Logik ist es 0, da danach geschaut wird, ob 0<views der aktuellen zeile ist und wenn ja, wird maxheight vergrößert... Jetzt kommt nicht mal mehr diese Fehlermeldung, es kommt eiinfach gar nichts...
$countBalken = count($values);
for($i=0;$i<$countBalken;$i++){
if($maxHeight < $values[$i]['views']){
$maxHeight = $values[$i]['views'];
}
}
$text = "Highest Hit: ".$maxHeight;
$fontsize = 3;
imagestring($theImage, $fontsize, 0, 50, $text, $details);
#hits yesterday
require_once(__DIR__ . '/../../functions/select/diagram/hits_yesterday.php');
$yesterday = selectHitsYesterday();
$text = date("Y/m/d",strtotime("-1 days")).': '.$yesterday[0]['views'];
$fontsize = 3;
imagestring($theImage, $fontsize, 0, 75, $text, $details);
#hits today
require_once(__DIR__ . '/../../functions/select/diagram/hits_today.php');
$today = selectHitsToday();
$text = "Today: ".$today[0]['dailyview'];
$fontsize = 3;
imagestring($theImage, $fontsize, 0, 100, $text, $details);
# Raster
$imgRWidth = '725';
$imgRHeight = '425';
$pxRaster = '45'; #Größe des Rasters
$pxWidth = round($imgRWidth / $pxRaster, 0);
for($i=1; $i<$pxWidth; $i++){
imageline($theImage, 50, $i*$pxRaster, $imgRWidth, $i*$pxRaster, $details); #horizontal
}
$dynWidth = round(($imgRWidth-2) / ($countBalken-1), 0);
@$dynHeight = ($imgRHeight-1) / $maxHeight;
for ($i=0; $i<$countBalken; $i++){
$aktNewSize = @round($dynHeight * $values[$i]['views']);
$aktNewSize2 = @round($dynHeight * $values[$i+1]['views']);
if($i+1 < $countBalken){
imageline($theImage, $i*$dynWidth+50, ($imgRHeight-$aktNewSize)+69, ($i+1)*$dynWidth+50, ($imgRHeight-$aktNewSize2)+69, $green);
}
}
imagepng($theImage);
imagedestroy($theImage);
Kommentar