![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 27.10.2005
Beiträge: 14
|
Hallo,
ich habe diverse Events in einer Datenbank stehen, das Zeitformat ist Y-M-D Wie kann ich denn nun per Skript anstoßen, das jeden Dienstag das selbige Event eingetragen wird? Also heute (11.09.2007) und dann immer +7 solange das Datum kleiner ist als 2008-12-31 Könnte mir da jemand weiterhelfen? Danke und Gruß Marco |
|
|
|
|
|
Nach oben #2 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.793
|
Zum Skriptanstoßen machen sich Cronjobs gut.
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Hallo,
schau dir mal die MySQL-Datumsfunktionen an: - http://dev.mysql.com/doc/refman/5.1/...functions.html Das hier könnte dir auch helfen: - http://php-faq.de/q/q-mysql-loeschen.html Musst du nur die Logik abändern. Ist also eher ein SQL-Problem, wenn ich das richtig verstanden habe. PS: Achso, geht es dir um das Auslesen der Daten oder geht es hier wirklich um Cronjobs? |
|
|
|
|
|
Nach oben #7 |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Du kannst einen Zähler mitlaufen lassen.
Also innerhalb der Schleife machst du PHP-Code:
Dann kannst du im SQL-Statement diese Variable nutzen. Musst du mal bei dem oben verlinkten Funktionen schauen, wie man das am besten macht. Weiß ich gerade auch nicht so genau. Schau dir mal die Funktion DATE_ADD() an. Das mit dem Interval klingt doch eigentlich ganz gut. |
|
|
|
|
|
Nach oben #8 |
|
Projektleiter
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.233
|
du kannst aber eine Schleife nehmen (Abbruchbedingung nicht vergessen)
und die dann durchrattern.. mktime() dürfte ein Freund sein. Einfach pro Durchlauf entsprechende Anzahl an Sekunden 60 Sek = 1Min 60*60 = 1 Std 60*60*24 = 1 Tag 60*60*24*7 = 1 Woche also pro Durchlauf der Schleife 60*60*24*7 dazuzählen... und schon hast du immer den Dienstag, wenn der erste Tag einer war.. |
|
|
|
|
|
Nach oben #10 |
|
Benutzer
Registriert seit: 09.03.2007
Ort: Nürnberg
Beiträge: 53
|
Falls ich dich richtig verstanden habe: (MySQL5)
Code:
CREATE PROCEDURE insert_events()
BEGIN
DECLARE starttime INTEGER DEFAULT NOW();
DECLARE event_date INTEGER;
DECLARE finishtime INTEGER DEFAULT TIMESTAMP('2008-12-31');
SET event_date = starttime;
WHILE starttime < finishtime DO
SET event_date = starttime + 604800; -- 604800 sec = 7 Tage
INSERT INTO ´events´ (name, date) VALUES('test', event_date);
END WHILE;
END;
Unwahrscheinlich, dass das funktioniert - aber ein Gedankenanstoss. bobby. //edit: die PHP-Lösung wäre im Grunde das gleiche. Geändert von bobby (11.09.2007 um 22:56 Uhr). |
|
|
|
|
|
Nach oben #12 |
|
Projektleiter
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.233
|
Hast du den Vorschlag von Ben bzw. den von mir wenigstens mal versucht?
Ich habe den Eindruck das du das nicht hast! Sowas könnte dabei rauskommen: PHP-Code:
Wenn du damit Probleme haben solltest, dann sage klar an, was du nicht verstehst! Die copy&paste-Vorkau-Methode ist nicht nicht so gerne gesehen. Frag mich nicht, warum ich dir das trotzdem zum Vorkauen gebe.... Hinweis: ich bestreite nicht, dass es auch Lösungen gibt, die performanter wären.. |
|
|
|
|
|
Nach oben #14 |
|
Neuer Benutzer
Registriert seit: 27.10.2005
Beiträge: 14
|
Hi Jann,
erstmal Danke für deine Hilfe und ja ich habe es vorher versucht - leider ohne Erfolg. Jetzt habe ich deine Variante genommen und getestet, funktioniert auch... nur leider muss es da einen bug oder einen logischen denkfehler geben! Nach dem 23.10. sollte der nächste Dienstag der 30.10. sein, nur leider sind alle Einträge ab dort Montags?!?! Versteh ich nicht |
|
|
|
|
|
Nach oben #15 |
|
Projektleiter
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.233
|
beachte die Sommer-/Winterzeit.
richtig: PHP-Code:
Nun wird 12 Uhr mittags genommen. Kann sein, dass es mal 11:00 oder mal 13:00 wird.. .aber wenn nur der Tag interessiert ist das nicht tragisch. |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Diverses aus meinem Apache Logs | robo47 | Tools, Server, Betriebssysteme | 3 | 25.05.2007 22:52 |
| PHP Script alle x Sekunden ausführen | .bat Script? | dsxs | Sonstige Programmiersprachen | 2 | 03.08.2006 12:15 |
| Variablen per ID auf 2. Script ausgeben? | netle | Datenbanken | 6 | 18.02.2006 12:43 |
| Suche Möglichkeit htaccess User per Script zu erfahren | derMaggus | Tools, Server, Betriebssysteme | 5 | 19.01.2006 20:09 |
| [PHP] Wie übergebe ich Daten per URL? | Ben | Tutorials | 0 | 05.12.2004 14:36 |