eine Frage ist es möglich direkt im SELECT zu sagen rechne auf ein Datum +Wochen, welches in drei verschieden Spalten liegt?
Das Datum liegt in den Spalten
- haltbar_bis_jahr
- haltbar_bis_monat
- haltbar_bis_tag
Sofern die Produkte nicht jeden Monat aufs Neue wieder vier Wochen haltbar sind, erscheint mir diese Aufteilung hanebüchen. Ein Datum besteht aus Tag, Monat und Jahr, anders ergeben die Angaben keinen Sinn. Wann möchtest du denn nach Produkten suchen, die "im Dezember" oder "am 13." verfallen, die verfallen "im Dezember 2017" oder "am 13. Juni 2018".
In der Folge bekommst du Probleme beim Umgang mit den Daten – genau wie jetzt gerade. Wäre das Datum als ein Datum (ein Objekt) gespeichert, könntest du einfach "where haltbar_bis > now() + interval 6 week" angeben, anstatt jetzt Klimmzüge machen zu müssen.
Aber davon ab: Schaue in der MySQL-Anleitung, ob es dort einen date()-Befehl gibt, der Einzelteile eines Datums annimmt.
WHERE DATE(haltbar_bis_jahr, haltbar_bis_monat, haltbar_bis_tag) > NOW() + INTERVAL 6 WEEK
(Trotzdem mein Rat, die drei Spalten zu einer Spalte vom Typ Datum zusammenfassen.)