Hallo,
ich arbeite an einer Art Terminplaner (php), der mir aus einer Sql Datenbank Termine in einer Wochenübersicht (Montag bis Sonntag) darstellt.
Dazu habe u.a. ich eine Tabelle "termin_range" in der Abonnements stehen, die bisher wöchentlich stattgefunden haben, beginnend am Startdatum (st_date) bis zum Enddatum (ed_date). Dabei legt das st_date den Wochentag automatisch fest.
Die Abfrage lautete dafür bislang folgendermaßen:
Dabei sind $date, $time, $z und $id_court gegeben.
Das funktioniert soweit auch prima.
Nun möchte allerdings den Abos ermöglichen wöchentlich, 14-tägig, alle drei und alle vier Wochen stattzufinden. Dafür habe ich an die Tabelle "termin_range" ein Spalte "delta_wo" hinzugefügt, in der per 1, 2, 3 oder 4 diese Information mitgegeben wird.
Damit ich nun meinen 270 Zeilen langen PHP Code, der mir die Wochenübersicht erstellt, nicht komplett über den Haufen werfen muss habe ich mir folgende neu Abfrage überlegt:
Es soll also zusätzlich geprüft werden, ob die Differenz aus aktuellem Datum und Datenbankdatum geteilt durch den Wochentakt ohne Rest aufgeht. Von der Logik her müsste das soweit passen. Allerdings erhalte ich kein Ergebnis.
Sieht jemand einen Fehler??
Vielen Dank
ich arbeite an einer Art Terminplaner (php), der mir aus einer Sql Datenbank Termine in einer Wochenübersicht (Montag bis Sonntag) darstellt.
Dazu habe u.a. ich eine Tabelle "termin_range" in der Abonnements stehen, die bisher wöchentlich stattgefunden haben, beginnend am Startdatum (st_date) bis zum Enddatum (ed_date). Dabei legt das st_date den Wochentag automatisch fest.
Die Abfrage lautete dafür bislang folgendermaßen:
PHP-Code:
$req_tr = mysql_query("SELECT * FROM termin_range WHERE id_court='$id_court' AND st_date<='$date' AND ed_date>='$date' AND st_time='$time' AND wotag='$z'");
Das funktioniert soweit auch prima.
Nun möchte allerdings den Abos ermöglichen wöchentlich, 14-tägig, alle drei und alle vier Wochen stattzufinden. Dafür habe ich an die Tabelle "termin_range" ein Spalte "delta_wo" hinzugefügt, in der per 1, 2, 3 oder 4 diese Information mitgegeben wird.
Damit ich nun meinen 270 Zeilen langen PHP Code, der mir die Wochenübersicht erstellt, nicht komplett über den Haufen werfen muss habe ich mir folgende neu Abfrage überlegt:
PHP-Code:
$req_tr = mysql_query("SELECT * FROM termin_range WHERE ABS(UNIX_TIMESTAMP('$date') - UNIX_TIMESTAMP(st_date)) % (delta_wo * 7 * 24 * 3600) = 0 AND id_court='$id_court' AND st_date<='$date' AND ed_date>='$date' AND st_time='$time' AND wotag='$z'");
Sieht jemand einen Fehler??
Vielen Dank
