Hallo,
ich bin dabei ein Trainingslog mit Hilfe einer MySQL Datenbank zu programmieren. Nun habe ich folgendes Problem:
Datei weekoutput.php:
?php
include 'check.php';
include 'connect.php';
include_once 'datefunction.php';
$query = "SELECT date FROM training ORDER BY date LIMIT 1";
$result = mysql_query($query);
/*Erster Eintrag wird gesucht und Datum ausgelesen, daraus der timestamp des Beginns der ersten Woche errechnet*/
while($row = mysql_fetch_object($result))
{$date = $row->date;
$firstweek = date("W",$date);
$firstyear = date("Y",$date);
$week = week($firstweek, $firstyear);
$weekstart = $week[0];
$weekend = $week[1];}
$now = time();
/*Hier möchte ich alle Trainingseinheiten der ersten Woche auslesen und ihre Anzahl angeben. Dann wird die Woche um eins erhöht, dann der timestamp von Wochenanfang und Wochenende errechnet. Anschließend wird das ganze wiederholt, bis wir den jetzigen Zeitpunkt erreichen. */
while ($weekstart <= $now) {
$query = "SELECT * FROM training WHERE date >= '".$weekstart."' AND date <= '".$weekend."' ORDER BY date";
$result = mysql_query($query);
while($row = mysql_fetch_object($result))
{$date = $row->date;
$calweek = date("W",$date[0]);
$year = date("Y",$date[0]);
$numberofresults = mysql_num_rows($result);
echo $numberofresults."<br />";
$calweek++;
$week = week($calweek, $year);
$weekstart = $week[0];
$weekend = $week[1];
}
}
?>
----------------------------------------------
Datei datefunction.php (Hier werden Wochenanfang, und Wochenende errechnet):
<?php
function week($week, $year) {
function firstmonday($year)
{
$fourth = mktime(0,0,0,1,4,$year);
$weekday = date("w",$fourth);
if ($weekday == 0) {$weekday = 7;}
$firstmonday = $fourth-($weekday-1)*86400;
return $firstmonday;}
$firstmonday = firstmonday($year);
$week = $week-1;
$weekmonday = strtotime("@$firstmonday +$week weeks");
$weeksunday = strtotime("@$weekmonday +1 week -1 second");
$week = array($weekmonday,$weeksunday);
return $week;}
?>
-------------------------------------
Das Problem ist, dass ich wenn ich das Skript weekoutput.php aufrufe, folgende Fehlermeldung erhalte:
Fatal error: Cannot redeclare firstmonday() (previously declared in [...]/training/datefunction.php:4) in [...]/training/datefunction.php on line 4
Die Funktion in datefunction.php selbst funktioniert jedoch einwandfrei, der Fehler liegt irgendwo in der zweiten Datenbankabfrage. Über Google habe ich nur rausgefunden, dass man include durch include_once ersetzen kann um solche Fehler zu vermeiden. Das hat ja aber nun nicht funktioniert. Wo könnte der Fehler sonst liegen?
Vielen Dank im Voraus,
Christian