Vielleicht ganz einfach?

Hallo,

kennt jemand vielleicht ein Script das
folgendes kann …

In eine Datenbank (mysql) soll eine
Beschreibung, Termin, Frist eingetragen
(evtl. Formular) werden können.

Ein PHP-Script soll per Cronjob täglich
prüfen, ob Termin (z.b. 01.09.2007) minus
Frist (z.b. 1 Monat) schon erreicht ist…
wenn ja, dann soll einfach eine eMail
verschickt werden. In diesem Beispiel
der 01.8.2007.

Andreas

Hallo,

nachdem ich das erstkürzlich gemacht habe kann ich dazu sagen, dass es hier sehr viele verschiedene Möglichkeiten gibt, wie das ganze angegangen werden kann.
Aber das kommt alles auf die Datenbankstruktur an.
am Enfachsten ist es wohl, wenn man das ganze mit timestamps regelt, weil sich sekunden erfreulich leicht addieren lassen und man das u.U. sogar mit falsch formatierten Datenbankspalten noch lösen kann.
Beim Datumsformat wird das dann schon wieder schwieriger - vor allem, wenn man dann auch noch mit Jahreswechsel und Schaltjahren rumtun muss…

z.B. so:
$now = time();
SELECT *, datum+(frist*60*60*24) as test FROM fristendings where datum+(frist*60*60*24) > $now

Hallo MunichFreak,

danke für deine schnelle Hilfe!! Kannst mir vielleicht noch
einen Tipp geben, wie die Datenbankstruktur am besten diesem
Fall anlege?! Ausserdem vielleicht, ein Beispiel für den
obigen SELECT-Befehl?! Wäre echt super…

Danke, Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo MunichFreak,

danke für deine schnelle Hilfe!! Kannst mir vielleicht noch
einen Tipp geben, wie die Datenbankstruktur am besten diesem
Fall anlege?! Ausserdem vielleicht, ein Beispiel für den
obigen SELECT-Befehl?! Wäre echt super…

Danke, Andreas

Datenbank:
datum as int
frist as int
der Rest ist Deine Wahl…

Und was soll ich groß schreiben als Beispiel?
Der passende Befehl steht oben, wobei ich da davon ausgehe, dass das Feld frist mit Tagen befüllt ist und nicht mit sekunden oder minuten…
Und für die zurückgegebenen Werte führst du eben dann Deinen Mailversand aus…
Achja…
Du solltest vielleicht noch ein sent-Flag setzen…
Also eine zusätzliche Spalte mit fristabgelaufen 1/0 (z.b. als typ char)
damit du nicht die schon gesendeten nochmal verschickst…

toller thread-titel
stell dir mal vor, jeder fragestellende hier würde so einen titel wie du wählen…

stell dir mal vor, jeder fragestellende hier würde so einen
titel wie du wählen…

Hallo cubensos,

Du hast völlig recht, aber ein anderer „Titel“ ist
mir damals einfach nicht eingefallen - Sorry!
Für die Zukunft!!

Andreas

Hallo MunichFreak,

irgendwie klappts einfach nicht …

Datenbank = Datum (timestamp / 01.03.2007) und Frist (int / 1 Tag)

$verbindung = mysql_connect(„localhost“, „xxxx“, „xxxx“);
$datenbank = mysql_select_db(„xxxx“, $verbindung);

$zeit = time();

$abfrage = „SELECT *, datum+(frist*60*60*24) as ergebnis FROM
beispiel where datum+(frist*60*60*24) > $zeit“;
$result = mysql_query($abfrage);

echo $result;

… ich bekomme aber immer die Meldung „Resource id #3“!!!

Hast Du vielleicht eine Idee?

Andreas

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

SQL-Kenntnisse?

Hallo MunichFreak,

irgendwie klappts einfach nicht …

Datenbank = Datum (timestamp / 01.03.2007) und Frist (int / 1
Tag)

$verbindung = mysql_connect(„localhost“, „xxxx“, „xxxx“);
$datenbank = mysql_select_db(„xxxx“, $verbindung);

$zeit = time();

$abfrage = „SELECT *, datum+(frist*60*60*24) as blabla FROM
beispiel where datum+(frist*60*60*24) > $zeit“;
$result = mysql_query($abfrage);

while ($ergebnis = mysql_fetch_assoc($result))
{
print_r($ergebnis);
echo " ";
}

PS: Achte auf gross/kleinschreibung bei deinen SQL-strings…