Christian: Fehler in MySQL Abfrage

Beitrag lesen

Hallo,

ich habe folgende Datenbankabfrage:

$query = "SELECT date FROM training ORDER BY date LIMIT 1";
$result = mysql_query($query);

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();
echo $now."<br />";

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]);

echo $calweek."<br />";
    echo $year."<br />";

$numberofresults = mysql_num_rows($result);
    echo $weekstart."<br />";
    echo $numberofresults."<br />";

$calweek++;
    $week = week($calweek, $year);
    $weekstart = $week[0];
    $weekend = $week[1];
    echo $weekstart."<br />";}

}

Ein Testen dieser Abfrage ergibt folgende Ausgabe:

1189713333
01
1970
1186959600
1
342000

Fatal error: Maximum execution time of 30 seconds exceeded in /[...]/weekoutput.php on line 24

Das heißt die erste Ausgabe es die des aktuellen Timestamps, die zweite Ausgabe ist die ausgelesene Woche und die dritte das ausgelesene Jahr, und dort liegt offensichtlich der Fehler. Der erste Wochenbeginn (4. Ausgabe) ist zwar noch richtig, dafür findet die Abfrage auch noch die Anzahl der Einträge (5. Ausgabe), Dann kanns ja aber nicht mehr gehen, da das Programm mit einer Woche beginnt, die Jahrzente zurückliegt und für die es ja auch keine Einträge gibt.

Woran kann es liegen, dass das Skript aus dem ausgelesenen Datum nicht die richtige Woche bzw. Jahr auslesen kann?

Danke im Voraus,

Christian