Einzelnen Beitrag anzeigen
  #3  
Alt 18.12.2017, 12:42:17
bgr bgr ist offline
Anfänger
 
Registriert seit: May 2016
Alter: 51
Beiträge: 10
AW: MySQL/PHP, effektives Kalenderjahr eingrenzen

Hallo vt1816

Danke für deine Antwort.
Ich versuche es nochmal etwas zu erläutern.

In den Rennserien (Tabelle season) sind die Renn-Saisons abgebildet.
Beispielsweise: Deutsche Tourenwagen Masters
Dazu weitere Attribute wie die eindeutige ID, Kürzel, das Jahr, ein zweites Jahr falls die Serie über den Jahreswechsel stattfindet, etc.

In den Rennen (Tabelle race) sind die eigentlichen Rennen.
Beispielsweise: Hockenheim
Dazu weitere Attribute wie das Datum, Bezug zur Rennserie bzw. Saison, etc.

By the way gibts noch die Tabelle raceseason, wo die Rennen explizit mit den Rennserien verknüpft sind, da ein Rennen ja leider auch zu mehreren Rennserien gehören kann....

Nun, wie gesagt, fix programmierte Auswertungen sind einfach.
Ist ein explizites Jahr oder Jahrzehnt vorgegeben, dann ist das Datum im Script einfach eingegrenzt auf z.B. between 2017-01-01 and 2017-12-31 bzw. 2010-01-01 and 2019-12-31.

Schwierig wird es nur wenn der Benutzer auf der Webseite aus einem Dropdown Menu ein Jahr selektieren kann. Diese Liste wird gefüttert aus DISTINCT year from season.
Nehmen wir beispielsweise 2016.
Dann habe ich aber bei Rennserien ein Problem wo entweder a) die Saison über 2015/2016 geht. Also in der season das year = 2015 und das year2 = 2016 ist. Dann wird diese Rennsaison schlicht nicht berücksichtigt.
Bzw. bei einer Saison 2016/2017 habe ich dann auch die Rennen von 2017 in der Rechnung.

Nur aus der Tabelle race die Daten ziehen wäre wie gesagt einfach, mit einem zusätzlichen Attribut wo nur das effektive Jahr vom Rennen drin ist. Aus dem Renndatum kann ich ja das Jahr nicht ziehen für die Drop-Down Liste.

Also, ohne das zusätzliche Attribute sehe ich zwei Lösungen. Entweder ich kann das Jahr was in der Variable mitkommt, nachher auch zur Eingrenzung vom Renndatum herziehen. Oder man kann irgendwie aus einem Datum YYYY-MM-DD das Jahr distinct rausziehen für die Anzeige in der Dropdown Liste und dann auch wieder auf die Rennen ummünzen.
Mit Zitat antworten