Thomas Luethi: MYSQL select Abfrage Problem mit or

Beitrag lesen

Hallo,

Eine Veranstaltung geht z.B. vom 28.01. - 6.02.04, liegt also vom Termin bei Ende Januar und Anfang Februar. In der Datenbank ist Sie mit EJ für Ende Januar gelistet.  (...)
AF für Anfang Februar

Es ist IMHO sehr ungeschickt, Kalenderdaten mit irgendwelchen Strings zu codieren.

MySQL hat doch extra den Typ "DATETIME", oder andere, siehe
http://www.mysql.com/doc/de/Date_and_time_types.html

Ich wuerde es so machen:
Zwei Variablen vom Typ DATETIME:
startdatum, enddatum
(Bei Veranstaltungen, die nur einen Tag dauern, sind beide Werte gleich.
Zudem kannst Du, wenn Du willst, auch die Uhrzeit gleich in die gleiche
Variable packen.)

Dann kannst Du auch ganz bequem vergleichen und SELECT-Anfragen machen.

Wenn der Benutzer einen Zeitraum ausgewaehlt hat, sei es, indem er
die Daten von Hand eintippt, sei es, indem er auf einen Button/Link klickt
und die von Dir vorgeschlagene Periode "Zweite Haelfte Februar" waehlt,
kannst Du nun die Frage so machen.

$startlimit="20040214000000";
$endlimit="20040228235900";

$query="SELECT * FROM Veranstaltungen WHERE (startdatum<=$endlimit) OR (enddatum>$startlimit)";

Gruesse,

Thomas