Mailinglisten-Archive |
Hallo alle beisammen! Da ich das erste mal poste möchte ich mich ganz kurz vorstellen: Ich heiße Andreas, bin 28 und in Wien zu Hause. Ich programmiere hobbymäßig PHP/MySQL und komme recht gut zurecht damit. Jetzt habe ich aber ein Problem, bei dem ich hoffe, dass Ihr mir helfen könnt. Darum geht's: Ich programmiere gerade in PHP eine "Teaserverwaltung" für eine Internet-Startseite. Ein "Teaser" besteht aus einem icon-großen Bildchen mit einem Text daneben und einem Link. Alle Teaser können zeitgesteuert sein und tauchen dann jeweils bei Abruf entweder auf oder nicht - gemäß des SELECT Statements. Soweit so gut. Jetzt gibt es auch Teaser die z.B. jedes Jahr wiederkommen sollen oder jede Woche. Dazu wird jeder Teaser, der abgelaufen ist folgendermaßen "upgedatet": UPDATE news_teaser_objects SET start = DATE_ADD(start, INTERVAL 1 YEAR), expiry = DATE_ADD(expiry, INTERVAL 1 YEAR) WHERE scheduled = 'y' AND expiry < NOW(); scheduled zeigt an, ob und in welcher Form der Teaser nach Ablauf wiedereingestellt werden soll. 'y' bedeutet z.B. jährlich und 'm' monatlich. Das funktioniert auch einwandfrei. Jetzt zum Problem: Wenn ein Teaser monatlich wiederkommen soll und expiry z.B. der 31.01. war, wird expiry durch folgendes Statement UPDATE news_teaser_objects SET start = DATE_ADD(start, INTERVAL 1 MONTH), expiry = DATE_ADD(expiry, INTERVAL 1 MONTH) WHERE scheduled = 'm' AND expiry < NOW(); auf den 28.02. gesetzt, einen 31.02. gibts ja nicht. Wenn der Teaser nächsten Monat dann aber wieder ein Monat weiterrutschen soll ist das Enddatum aber nicht der 31.03. sondern der 28.03., also falsch. Ich kriege irgendwie kein funktionierendes SQL-Statement zusammen, das das Problem behebt. Das Datum im Feld soll auch nicht ungültig sein (also nicht mit Gewalt auf z.B. 31.02. gesetzt). Ich dachte schon daran in einer zusätzlichen Spalte den gewünschten Tag des Monats mitzuspeichern und das damit irgendwie zu korrigieren, aber bisher hab ichs nicht geschafft. Wär super wenn Ihr mir da helfen könntet! Viele Grüße, Andreas Kuzma -- Telefonieren Sie schon oder sparen Sie noch? NEU: GMX Phone_Flat http://www.gmx.net/de/go/telefonie -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive