Christian Kruse: PHP Date Prüfen

Beitrag lesen

Hallo mixmastertobsi,

OR würde sicher funktionieren, aber nicht wenn ich die Daten in der Datenbank als Gutscheincode hinterlegen möchte.

Lege die Datenbank-Struktur für deinen Gutschein so an, dass du danach selektieren kannst:

CREATE TABLE vouchers (
  id INTEGER AUTOINCREMENT PRIMARY KEY,
  code VARCHAR(100) UNIQUE NOT NULL
);
CREATE TABLE valid_voucher_days (
  id INTEGER AUTOINCREMENT PRIMARY KEY,
  voucher_id INT NOT NULL REFERENCES vouchers(id),
  day_of_week INT NOT NULL,
  start_time TIME NOT NULL,
  end_time TIME NOT NULL
);

Dann kannst du jetzt alle gültigen Gutscheine abfragen:

SELECT code
  FROM vouchers v
  INNER JOIN valid_voucher_days d
    ON d.voucher_id = v.id AND d.day_of_week = :wochentag AND start_time <= :zeit AND end_time >= :zeit;

Die Bedeutung der Platzhalter sollte klar sein.

LG,
CK