daflowjoe
Mitglied
Hallo Leute, ich hoffe ihr könnt mir helfen!
Ich benutze folgenden Code um eine Xml Datei für eine Statistik zu generieren.. Dabei sind einige Variablen undefined und führen dazu dass die log jeweils eine Fehlermeldung ausgibt.
Da dies bei jeder einzelner Stunde geschieht führt das zu Unmengen an Zeilen.
Was kann ich tun?
Vielen Dank schonmal im Vorraus.
gruss joe
Ich benutze folgenden Code um eine Xml Datei für eine Statistik zu generieren.. Dabei sind einige Variablen undefined und führen dazu dass die log jeweils eine Fehlermeldung ausgibt.
Da dies bei jeder einzelner Stunde geschieht führt das zu Unmengen an Zeilen.
Was kann ich tun?
Vielen Dank schonmal im Vorraus.
gruss joe
Code:
<? function select($query)
{
$arrFetchedData = array();
$result = mysql_query($query);
if($result != false)
{
$arrFetchedData = array();
while($row = mysql_fetch_assoc($result))
{
$arrFetchedData[] = $row;
}
mysql_free_result($result);
}
return $arrFetchedData;
}
function format($wert)
{
switch ($wert)
{
case 01:
$monat = 1;
break;
case 02:
$monat = 2;
break;
case 03:
$monat = 3;
break;
case 04:
$monat = 4;
break;
case 05:
$monat = 5;
break;
case 06:
$monat = 6;
break;
case 07:
$monat = 7;
break;
case 08:
$monat = 8;
break;
case 09:
$monat = 9;
break;
default:
$monat = $monat;
break;
}
return $monat;
}
function unformat($wert)
{
switch ($wert)
{
case 1:
$monat = "01";
break;
case 2:
$monat = "02";
break;
case 3:
$monat = "03";
break;
case 4:
$monat = "04";
break;
case 5:
$monat = "05";
break;
case 6:
$monat = "06";
break;
case 7:
$monat = "07";
break;
case 8:
$monat = "08";
break;
case 9:
$monat = "09";
break;
}
return $monat;
}
function getYear($jahr)
{
switch ($jahr)
{
case 1:
$name = "bla";
break;
}
return $name;
}
function getMonth($monat)
{
switch ($monat)
{
case 1:
$name = "Januar";
break;
case 2:
$name = "Februar";
break;
case 3:
$name = "März";
break;
case 4:
$name = "April";
break;
case 5:
$name = "Mai";
break;
case 6:
$name = "Juni";
break;
case 7:
$name = "Juli";
break;
case 8:
$name = "August";
break;
case 9:
$name = "Sebtember";
break;
case 10:
$name = "Oktober";
break;
case 11:
$name = "November";
break;
case 12:
$name = "Dezember";
break;
}
return $name;
}
function getMonthdays($monat, $jahr)
{
if($jahr % 400 == 0) {$schaltjahr = 1;}
elseif ($jahr % 4 == 0 && $jahr % 100 != 0) {$schaltjahr = 1;}
else {$schaltjahr = 0; }
switch ($monat)
{
case 1:
$tage = 31;
break;
case 2:
$tage = 28+$schaltjahr;
break;
case 3:
$tage = 31;
break;
case 4:
$tage = 30;
break;
case 5:
$tage = 31;
break;
case 6:
$tage = 30;
break;
case 7:
$tage = 31;
break;
case 8:
$tage = 31;
break;
case 9:
$tage = 30;
break;
case 10:
$tage = 31;
break;
case 11:
$tage = 30;
break;
case 12:
$tage = 31;
break;
}
return $tage;
}
function getDay($idatum)
{
$temp = split("-", $idatum);
$datum = mktime(0, 0, 0, $temp[1], $temp[0], $temp[2]);
// Wochentage
$wochentag=array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa");
return $idatum . ' ' . $wochentag[date("w", $datum)];
}
?>
Code:
<?
include 'functions.php';
mysql_connect("localhost", "simon", "simon") or die("Es konnte keine Verbindung aufgebaut werden");
mysql_select_db("simon");
$handle = fopen("test1.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 = '<jahr jahr="'.$jahr.'" name="'.$name.'">';
fwrite($handle, $content);
for($monat = 1; $monat <= 12; $monat++)
{
$name = getMonth($monat);
$content = '<monat monat="'.$monat.'" name="'.$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 = '<tag tag="'.$tag.'" name="'.$name.'" datum="'.$datum.'">';
fwrite($handle, $content);
for($stunde = 1; $stunde <= 24; $stunde++)
{
if($arr_db[$jahr.$monat.$tag.$stunde] == ""){$arr_db[$jahr.$monat.$tag.$stunde]= 0;}
$zugriffe = $arr_db[$jahr.$monat.$tag.$stunde];
$content = '<stunde stunde="'.$stunde.'" zugriffe="'.$zugriffe.'" />';
fwrite($handle, $content);
}
$content = '</tag>';
fwrite($handle, $content);
}
$content = '</monat>';
fwrite($handle, $content);
}
$content = '</jahr>';
fwrite($handle, $content);
}
$content = '</statistik>';
fwrite($handle, $content);
fclose($handle);
print 'test';
?>