bootscreen
Grünschnabel
Moin
ich habe ein Problem bzw eine Denkblockade und hoffe das ihr mir helfen könnt.
Also folgendes Problem, ich zieh mir aus meiner Datenbank "Stundenwerte" für die einzelnen Wochentage einer bestimmten Kalenderwoche und gebe diese als Diagramm aus. Jetz gibt es aber nicht für jeden Wochentag diese Stundenwerte und somit fehlen einige Tage in dem Diagramm. Kann mir jemand sagen wie ich es hinbekomme das alle Wochentage im Diagramm angezeigt werden, egal ob es Stundenwerte gibt oder nicht?
Hier mal mein PHP-Code und ein Bild des Diagramms wie es derzeit aussieht.
Hoffe das ihr mir helfen könnt.
ich habe ein Problem bzw eine Denkblockade und hoffe das ihr mir helfen könnt.
Also folgendes Problem, ich zieh mir aus meiner Datenbank "Stundenwerte" für die einzelnen Wochentage einer bestimmten Kalenderwoche und gebe diese als Diagramm aus. Jetz gibt es aber nicht für jeden Wochentag diese Stundenwerte und somit fehlen einige Tage in dem Diagramm. Kann mir jemand sagen wie ich es hinbekomme das alle Wochentage im Diagramm angezeigt werden, egal ob es Stundenwerte gibt oder nicht?
Hier mal mein PHP-Code und ein Bild des Diagramms wie es derzeit aussieht.
PHP:
<?php
//Allgemeine Diagrammdaten
$Diagrammbreite = 500;
$Diagrammhoehe = 400;
$Diagrammtitel = "Besucherauswertung";
//Ränder & Abstände
$AbstandAussen = 3;
$RandOben = 30;
$RandLinks = 30;
$RandUnten = 80;
$RandRechts = 20;
//Diagrammfarben
$HintergrundfarbeR = 255;
$HintergrundfarbeG = 255;
$HintergrundfarbeB = 255;
$HintergrundfarbeAuswertungsbereichR = 224;
$HintergrundfarbeAuswertungsbereichG = 224;
$HintergrundfarbeAuswertungsbereichB = 224;
$TextfarbeR = 64;
$TextfarbeG = 64;
$TextfarbeB = 64;
$AchsenfarbeR = 0;
$AchsenfarbeG = 0;
$AchsenfarbeB = 0;
$BalkenfarbeR = 00;
$BalkenfarbeG = 185;
$BalkenfarbeB = 00;
// DB-Zugriff
$DatabaseHost = "xxx";
$DatabaseUser = "xxx";
$DatabasePassword = "xxx";
$Database = "xxx";
$zeitraum = $_GET['zeitraum'];
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$ResultPointer = mysql_query("SELECT sum(zeit) Arbeitsstunden, DAYNAME(datum) Zeitraum FROM stundenzettel WHERE kundennummer = '05005' AND WEEK(datum,1) = '16' GROUP BY Zeitraum ORDER BY Zeitraum", $DatabasePointer);
header("Content-type: image/png");
for($i=0, $XWerte="", $YWerte=""; $i<mysql_num_rows($ResultPointer); $i++)
{
$Besucher = mysql_fetch_object($ResultPointer);
$YWerte[] = $Besucher->Arbeitsstunden;
$XWerte[] = $Besucher->Zeitraum;
}
$XMin = 0;
$XMax = count($XWerte);
$Tmp = $YWerte;
sort($Tmp);
$YMin = $Tmp[0];
rsort($Tmp);
$YMax = $Tmp[0];
$Grafik = imagecreatetruecolor($Diagrammbreite, $Diagrammhoehe);
$Textfarbe = imagecolorallocate($Grafik, $TextfarbeR, $TextfarbeG, $TextfarbeB);
$Hintergrundfarbe = imagecolorallocate($Grafik, $HintergrundfarbeR, $HintergrundfarbeG, $HintergrundfarbeB);
$HintergrundfarbeAuswertungsbereich = imagecolorallocate($Grafik, $HintergrundfarbeAuswertungsbereichR, $HintergrundfarbeAuswertungsbereichG, $HintergrundfarbeAuswertungsbereichB);
$Achsenfarbe = imagecolorallocate($Grafik, $AchsenfarbeR, $AchsenfarbeG, $AchsenfarbeB);
$Balkenfarbe = imagecolorallocate($Grafik, $BalkenfarbeR, $BalkenfarbeG, $BalkenfarbeB);
//Allgemeinen Hintergrund und Auswertungsbereich einfärben
imagefill($Grafik, 0, 0, $Hintergrundfarbe);
imagefilledrectangle($Grafik, $AbstandAussen+$RandLinks, $AbstandAussen+$RandOben, $Diagrammbreite-1-$AbstandAussen-$RandRechts, $Diagrammhoehe-1-$AbstandAussen-$RandUnten, $HintergrundfarbeAuswertungsbereich);
//Allgemeine Berechnungen zur X- und Y-Achse
if($YMax>10)
{
$YMaxAbstand = 10;
}
else
{
$YMaxAbstand = $YMax;
}
$YAbstand = ($Diagrammhoehe-2*$AbstandAussen-$RandOben-$RandUnten-10)/$YMaxAbstand;
$YWertHoehe = ($Diagrammhoehe-2*$AbstandAussen-$RandOben-$RandUnten-10)/$YMax;
$XAbstand = ($Diagrammbreite-2*$AbstandAussen-$RandRechts-$RandLinks-10)/$XMax;
$Balkendicke = ($XAbstand-4)/2;
//Hilfslinien einzeichnen
imagesetstyle($Grafik, array($Achsenfarbe, $Achsenfarbe, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT));
for($i=0; $i<$YMaxAbstand; $i++)
{
imageline($Grafik, $AbstandAussen+$RandLinks, $AbstandAussen+$RandOben+10+($YAbstand*$i), $Diagrammbreite-$AbstandAussen-$RandRechts-1, $AbstandAussen+$RandOben+10+($YAbstand*$i), IMG_COLOR_STYLED);
}
//X-Achse einzeichnen
imageline($Grafik, $AbstandAussen+$RandLinks, $Diagrammhoehe-$AbstandAussen-$RandUnten, $Diagrammbreite-$AbstandAussen-$RandRechts, $Diagrammhoehe-$AbstandAussen-$RandUnten, $Achsenfarbe);
imageline($Grafik, $AbstandAussen+$RandLinks, $Diagrammhoehe-$AbstandAussen-$RandUnten-1, $Diagrammbreite-$AbstandAussen-$RandRechts, $Diagrammhoehe-$AbstandAussen-$RandUnten-1, $Achsenfarbe);
for($i=0; $i<$XMax; $i++)
{
imageline($Grafik, $AbstandAussen+$RandLinks+($XAbstand*$i)+($XAbstand/2+3), $Diagrammhoehe-$AbstandAussen-$RandUnten-2, $AbstandAussen+$RandLinks+($XAbstand*$i)+($XAbstand/2+3), $Diagrammhoehe-$AbstandAussen-$RandUnten+2, $Achsenfarbe);
imagestringup($Grafik, 2, $AbstandAussen+$RandLinks+($XAbstand*$i)+($XAbstand/2)-3, $Diagrammhoehe-$AbstandAussen-$RandUnten+4+(imagefontwidth(2)*strlen($zeitraum.' '.$XWerte[$i])), $zeitraum.' '.$XWerte[$i], $Achsenfarbe);
}
//Y-Achse einzeichnen
imageline($Grafik, $AbstandAussen+$RandLinks, $AbstandAussen+$RandOben, $AbstandAussen+$RandLinks, $Diagrammhoehe-$AbstandAussen-$RandUnten, $Achsenfarbe);
imageline($Grafik, $AbstandAussen+$RandLinks+1, $AbstandAussen+$RandOben, $AbstandAussen+$RandLinks+1, $Diagrammhoehe-$AbstandAussen-$RandUnten, $Achsenfarbe);
for($i=0; $i<=$YMaxAbstand; $i++)
{
imageline($Grafik, $AbstandAussen+$RandLinks-2, $AbstandAussen+$RandOben+10+($YAbstand*$i), $AbstandAussen+$RandLinks+2, $AbstandAussen+$RandOben+10+($YAbstand*$i), $Achsenfarbe);
if($YMax>10)
{
imagestring($Grafik, 2, $AbstandAussen+$RandLinks-4-(imagefontwidth(2)*strlen(round($YMax-(($YMax/10)*$i), 0))), $AbstandAussen+$RandOben+10-(imagefontheight(1)/2)+($YAbstand*$i), round($YMax-(($YMax/10)*$i), 0), $Achsenfarbe);
}
else
{
imagestring($Grafik, 2, $AbstandAussen+$RandLinks-4-(imagefontwidth(2)*strlen($YMax-$i)), $AbstandAussen+$RandOben+10-(imagefontheight(1)/2)+($YAbstand*$i), $YMax-$i, $Achsenfarbe);
}
}
//Werte einzeichnen
for($i=0; $i<$XMax; $i++)
{
imagerectangle($Grafik, $AbstandAussen+$RandLinks+($XAbstand*($i+1))-($XAbstand/2-3)-$Balkendicke, $Diagrammhoehe-$AbstandAussen-$RandUnten-($YWertHoehe*$YWerte[$i]), $AbstandAussen+$RandLinks+($XAbstand*($i+1))-($XAbstand/2-3)+$Balkendicke, $Diagrammhoehe-$AbstandAussen-$RandUnten, $Achsenfarbe);
imagefilledrectangle($Grafik, $AbstandAussen+$RandLinks+($XAbstand*($i+1))-($XAbstand/2-3)-$Balkendicke+1, $Diagrammhoehe-$AbstandAussen-$RandUnten-($YWertHoehe*$YWerte[$i])+1, $AbstandAussen+$RandLinks+($XAbstand*($i+1))-($XAbstand/2-3)+$Balkendicke-1, $Diagrammhoehe-$AbstandAussen-$RandUnten-2, $Balkenfarbe);
}
//Diagrammtitel einzeichnen
imagestring($Grafik, 5, $AbstandAussen+$RandLinks+($Diagrammbreite-(2*$AbstandAussen+$RandLinks+$RandRechts)-imagefontwidth(5)*strlen($Diagrammtitel))/2, $AbstandAussen, $Diagrammtitel, $Textfarbe);
imagepng($Grafik);
imagedestroy($Grafik);
?>
Hoffe das ihr mir helfen könnt.