Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
$result = mysql_query('SELECT id, usersince FROM user');
mysql_query('ALTER TABLE user MODIFY usersince DATE NOT NULL');
while ($row = mysql_fetch_assoc($result)) {
mysql_query('UPDATE user SET usersince = "'.implode('-', array_reverse(explode('.', $row['usersince']))).'" WHERE id = '.$row['id']);
}
ORDER BY usersince DESC
$DatabaseHost = "localhost";
$DatabaseUser = "";
$DatabasePassword = "";
$Database = "";
$Diagrammbreite = 600;
$Diagrammhoehe = 400;
$Diagrammtitel = "Anmeldungen";
$AbstandAussen = 0;
$RandOben = 30;
$RandLinks = 30;
$RandUnten = 60;
$RandRechts = 20;
$HintergrundfarbeR = 255;
$HintergrundfarbeG = 255;
$HintergrundfarbeB = 255;
$HintergrundfarbeAuswertungsbereichR = 232;
$HintergrundfarbeAuswertungsbereichG = 232;
$HintergrundfarbeAuswertungsbereichB = 232;
$TextfarbeR = 255;
$TextfarbeG = 140;
$TextfarbeB = 0;
$AchsenfarbeR = 0;
$AchsenfarbeG = 0;
$AchsenfarbeB = 128;
$BalkenfarbeR = 255;
$BalkenfarbeG = 140;
$BalkenfarbeB = 0;
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$ResultPointer = mysql_query("SELECT SUBSTRING(usersince, 1, 10) as Date, COUNT(usersince) as Submits FROM user GROUP BY usersince ORDER BY usersince DESC", $DatabasePointer);
for($i=0, $XWerte="", $YWerte=""; $i<mysql_num_rows($ResultPointer); $i++)
{
$Stat = mysql_fetch_object($ResultPointer);
$XWerte[] = $Stat->Date;
$YWerte[] = $Stat->Submits;
}
$XMin = 0;
$XMax = count($XWerte);
$Tmp = $YWerte;
sort($Tmp);
$YMin = $Tmp[0];
rsort($Tmp);
$YMax = $Tmp[0];
header("Content-type: image/png");
$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);
imagefill($Grafik, 0, 0, $Hintergrundfarbe);
imagefilledrectangle($Grafik, $AbstandAussen+$RandLinks, $AbstandAussen+$RandOben, $Diagrammbreite-1-$AbstandAussen-$RandRechts, $Diagrammhoehe-1-$AbstandAussen-$RandUnten, $HintergrundfarbeAuswertungsbereich);
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;
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);
}
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, 1, $AbstandAussen+$RandLinks+($XAbstand*$i)+($XAbstand/2), $Diagrammhoehe-$AbstandAussen-$RandUnten+4+(imagefontwidth(1)*strlen($XWerte[$i])), $XWerte[$i], $Achsenfarbe);
}
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, 1, $AbstandAussen+$RandLinks-4-(imagefontwidth(1)*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, 1, $AbstandAussen+$RandLinks-4-(imagefontwidth(1)*strlen($YMax-$i)), $AbstandAussen+$RandOben+10-(imagefontheight(1)/2)+($YAbstand*$i), $YMax-$i, $Achsenfarbe);
}
}
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);
}
imagestring($Grafik, 5, $AbstandAussen+$RandLinks+($Diagrammbreite-(2*$AbstandAussen+$RandLinks+$RandRechts)-imagefontwidth(5)*strlen($Diagrammtitel))/2, $AbstandAussen, $Diagrammtitel, $Textfarbe);
imagepng($Grafik);
imagedestroy($Grafik);
D.h. wenn ich das Datum nun in yyyy-mm-dd umwandele kann man einfach per:
PHP:ORDER BY usersince DESC
sortieren?
$ResultPointer = mysql_query("SELECT SUBSTRING(usersince, 1, 10) as Date, COUNT(usersince) as Submits FROM user GROUP BY usersince ORDER BY usersince ASC", $DatabasePointer);
[...] WHERE usersince BETWEEN curdate() AND DATE_SUB(curdate(), INTERVAL 31 DAY)