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