daflowjoe
Mitglied
Hi,
ich benutze ein PHP Script, dass diverse Daten aus einer SQL Datenbank holt und sie dann für ein Actionscript in XML aufbereitet.
Klar, sind das schon ein paar Daten schließlich werden Informationen zu jeder Stunde des gesamten Jahres gespeichert. Ich finde jedoch, dass die Datenmengen trotzdem etwas überproportioniert sind.
Das Script:
Hat jemand eine Idee wiso die Dateu so groß wird? Ich brauch die Daten aber im Flash! Was kann man da tun?
lg Joe
ich benutze ein PHP Script, dass diverse Daten aus einer SQL Datenbank holt und sie dann für ein Actionscript in XML aufbereitet.
Klar, sind das schon ein paar Daten schließlich werden Informationen zu jeder Stunde des gesamten Jahres gespeichert. Ich finde jedoch, dass die Datenmengen trotzdem etwas überproportioniert sind.
Das Script:
Code:
<?
include 'functions.php';
mysql_connect("localhost", "simon", "simon") or die("Es konnte keine Verbindung aufgebaut werden");
mysql_select_db("simon");
$handle = fopen("test.xml", "w++");
//$query = "select count(*) as Jahre, REPLACE(tag, "/", ".") as datum, substr(tag,8,4)as jahr, substr(tag,1,2)as tag, CASE substr(tag,4,3) When 'Jan' Then '01' When 'Feb' Then '02' When 'Mar' Then '03' When 'Apr' Then '04' When 'May' Then '05' When 'Jun' Then '06' When 'Jul' Then '07' When 'Aug' Then '08' When 'Seb' Then '09' When 'Oct' Then '10' When 'Nov' Then '11' When 'Dec' Then '12' End as monat, stunde, anzahl from (select tag, stunde, ip, count(stunde) as anzahl from (select substr(zeitpunkt,2,11) as tag, substr(zeitpunkt,14,2)as stunde, ip FROM access_log group by ip ORDER By tag) as tab32 group by tag, stunde order by tag) as tabl order by tag, stunde";
$querydata = 'select REPLACE(tag, "/", ".") as datum, substr(tag,8,4)as jahr, substr(tag,1,2)as tag, CASE substr(tag,4,3) When \'Jan\' Then \'01\' When \'Feb\' Then \'02\' When \'Mar\' Then \'03\' When \'Apr\' Then \'04\' When \'May\' Then \'05\' When \'Jun\' Then \'06\' When \'Jul\' Then \'07\' When \'Aug\' Then \'08\' When \'Seb\' Then \'09\' When \'Oct\' Then \'10\' When \'Nov\' Then \'11\' When \'Dec\' Then \'12\' End as monat, stunde, anzahl from (select tag, stunde, ip, count(stunde) as anzahl from (select substr(zeitpunkt,2,11) as tag, substr(zeitpunkt,14,2)as stunde, ip FROM access_log group by ip ORDER By tag) as tab32 group by tag, stunde order by tag) as tabl order by tag, stunde';
$execute_f = select($querydata);
foreach($execute_f as $querykey)
{
$arr_db[$querykey['jahr'].$querykey['monat'].$querykey['tag'].$querykey['stunde']] = $querykey['anzahl'];
}
$queryYears = 'select count(*) as jahre from(select REPLACE(tag, "/", ".") as datum, substr(tag,8,4)as jahr, substr(tag,1,2)as tag, CASE substr(tag,4,3) When \'Jan\' Then \'01\' When \'Feb\' Then \'02\' When \'Mar\' Then \'03\' When \'Apr\' Then \'04\' When \'May\' Then \'05\' When \'Jun\' Then \'06\' When \'Jul\' Then \'07\' When \'Aug\' Then \'08\' When \'Seb\' Then \'09\' When \'Oct\' Then \'10\' When \'Nov\' Then \'11\' When \'Dec\' Then \'12\' End as monat, stunde, anzahl from (select tag, stunde, ip, count(stunde) as anzahl from (select substr(zeitpunkt,2,11) as tag, substr(zeitpunkt,14,2)as stunde, ip FROM access_log group by ip ORDER By tag) as tab32 group by tag, stunde order by tag) as tabl group by jahr order by tag, stunde)as donno';
$years = select($queryYears);
foreach($years as $years_nr)
{
$jahre = $years_nr['jahre'];
}
$queryFirstyear = 'select REPLACE(tag, "/", ".") as datum, substr(tag,8,4)as jahr, substr(tag,1,2)as tag, CASE substr(tag,4,3) When \'Jan\' Then \'01\' When \'Feb\' Then \'02\' When \'Mar\' Then \'03\' When \'Apr\' Then \'04\' When \'May\' Then \'05\' When \'Jun\' Then \'06\' When \'Jul\' Then \'07\' When \'Aug\' Then \'08\' When \'Seb\' Then \'09\' When \'Oct\' Then \'10\' When \'Nov\' Then \'11\' When \'Dec\' Then \'12\' End as monat, stunde, anzahl from (select tag, stunde, ip, count(stunde) as anzahl from (select substr(zeitpunkt,2,11) as tag, substr(zeitpunkt,14,2)as stunde, ip FROM access_log group by ip ORDER By tag) as tab32 group by tag, stunde order by tag) as tabl group by jahr order by jahr limit 1';
$firstYear = select($queryFirstyear);
foreach($firstYear as $arrFirstYear)
{
$startjahr = $arrFirstYear['jahr'];
}
$content = '<statistik>';
fwrite($handle, $content);
$endjahr = $startjahr + $jahre;
for ($jahr = $startjahr ; $jahr <= $endjahr; $jahr++) //Anzahl der vorhanden jahre ermitteln //Anzahl der vorhanden jahre ermitteln //Anzahl der vorhanden jahre ermitteln //Anzahl der vorhanden jahre ermitteln //Anzahl der vorhanden jahre ermitteln
{
$content = '<year n="'.$jahr.'" >';
fwrite($handle, $content);
for($monat = 1; $monat <= 12; $monat++)
{
$name = getMonth($monat);
$content = '<m n="'.$name.'">';
fwrite($handle, $content);
$monatstage = getMonthdays($monat, $jahr);
for($tag = 1; $tag <= $monatstage; $tag++)
{
$tag = unformat($tag);
$monat = unformat($monat);
$datum = $tag.'-'.$monat.'-'.$jahr;
$name = getDay($datum);
$datum = $tag.'.'.$monat.'.'.$jahr;
$content = '<d n="'.$name.'">';
fwrite($handle, $content);
for($stunde = 1; $stunde <= 24; $stunde++)
{
if (isset($arr_db[$jahr.$monat.$tag.$stunde]))
{
$zugriffe = $arr_db[$jahr.$monat.$tag.$stunde];
}
else
{
$zugriffe = 0;
}
$content = '<h k="'.$zugriffe.'" />';
fwrite($handle, $content);
}
$content = '</d>';
fwrite($handle, $content);
}
$content = '</m>';
fwrite($handle, $content);
}
$content = '</year>';
fwrite($handle, $content);
}
$content = '</statistik>';
fwrite($handle, $content);
fclose($handle);
print 'test';
?>
Hat jemand eine Idee wiso die Dateu so groß wird? Ich brauch die Daten aber im Flash! Was kann man da tun?
lg Joe