mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 09:59 Benutzername: Passwort: Auto-Login

Thema: [PHP] Wiederkehrende Termine vom 14.12.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Wiederkehrende Termine
Seite: Zurück  1, 2, 3, 4  Weiter
Autor Nachricht
Benutzer 16997
Account gelöscht Threadersteller


Ort: -

Verfasst Fr 16.12.2005 10:40
Titel

Antworten mit Zitat Zum Seitenanfang

bigdeal hat geschrieben:
Einfache Variante wäre, jedem Termin ein Anfangs + Enddatum zu geben und wenn der Termin sich irgendwie wiederholen soll, diese als neue Einträge mit Anfangs+Enddatum in die DB zu schreiben.


Stichwort: Redundanz *Schnief*

@tommy-p: ne ne, es geht mir ausschließlich um die db-struktur, und die ist so auf jeden fall nicht gut. eingabemaske ist kein problem, die werde ich wie in outlook gestalten, die ist eigentlich gut durchdacht wie ich finde.

danke für all eure anregungen. ich denke ich werde es so machen:

eine tabelle mit den terminen (id, titel, beschreibung etc.). diese können entweder ein einzelnes datum haben, oder es sind halt sich wiederholende termine. dass heißt, ihnen wird eine wiederholung zugewiesen. die frage ist einfach, wie bildet man die wiederholungen am besten ab, ohne für jede wiederholungsart eine eigene tabelle zu nehmen? einfach möglich wäre ja z.b. folgendes:

tabelle: termine (id, titel) => zwischentabelle (rel_termin, rel_wiederholungstabelle, rel_wiederholungsid) => tabelle: wiederholungenen

d.h., ich hätte eine tabelle für wöchentliche wiederholungen. da gibt es dann z.b. spalten für mo, di, mi, usw... und dann würde ich einem termin diese tabelle zuordnen und in dieser tabelle dann die wiederholung spezifizieren.

dann brauche ich aber für jede wiederholungsart eine tabelle. *Schnief*

wie kriege ich alle wiederholungsmuster in eine tabelle?
 
tommy-p

Dabei seit: 21.01.2004
Ort: Cottbus
Alter: 38
Geschlecht: Männlich
Verfasst Fr 16.12.2005 11:30
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
jedes mal, wenn der termin aktiv war... setzt du iteration eine stufe niedriger (3 -> 2 -> 1 -> 0) sobald es bei 0 steht.. kommt die cleanUp Funktion, welche sämtliche einträge mit null wiederholungen aus der db löscht...


Ich denke, das wird nicht funktionieren. Denn du müsstest bei jedem Kalenderaufruf schauen, welche aller Terminwiederholungen in der jüngsten Vergangenheit lag, um die Iteration heraubzusetzen. Also Ein Termin soll ab dem 1.1.05 ganze 24mal wiederholt werden, im Abstand von 30 Tagen. (Wir ignorieren hier, das in deinem Modell wiederkehrende Termine am gleichen Monatstag nicht berücksichtigt werden können.) Was haben wir jetzt? wenn ich den Kalender am 2.12. aufrufe - woher weiß das Script, ob es die Iteration herabsetzen soll, oder ob das für den aktuellen Monat schon geschehen ist? Außerdem verschwinden nach diesem Modell alle Termine in der Vergangenheit, was auch nicht gut ist.

Zitat:
ich hätte eine tabelle für wöchentliche wiederholungen. da gibt es dann z.b. spalten für mo, di, mi, usw... und dann würde ich einem termin diese tabelle zuordnen und in dieser tabelle dann die wiederholung spezifizieren. dann brauche ich aber für jede wiederholungsart eine tabelle.


Wie du schon schreibst, bräuchtest du für jede Möglichkeit eine eigene Tabelle. Und das wird wahrscheinlich zu fitzelig, da es unzählige Varianten gibt.

- am 5. eines jeden Monats
- jeden Dienstag
- jeden letzten Mittwoch im Monat

Nächster Punkt: Termine sollen nicht an Feiertagen stattfinden. Alle Feiertage (aus einer weiteren Datenbank) müssten also berücksichtig werden. Und auch die Feiertage sind z.T. wieder unregelmäßige Termine ohne festes Datum (Ostern und Pfingsten z.B.).

Diese Komplexität hat mich bisher auch davon abgehalten, eine gute Serientermin-Funktion zu schreiben. Obwohl ich die für mehrere Projekte gut gebrauchen nkönnte. Ich freue mich also auf weitere Denkanstöße.


Schöne Grüße,
tommy-p


Zuletzt bearbeitet von tommy-p am Fr 16.12.2005 11:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Account gelöscht
Threadersteller


Ort: -
Alter: -
Verfasst Sa 17.12.2005 13:37
Titel

Antworten mit Zitat Zum Seitenanfang

? Wiederholungen kannste doch durchs SELECT-Statement darstellen
 
beeviZ

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 17.12.2005 14:37
Titel

Antworten mit Zitat Zum Seitenanfang

darüber hatten wir uns im chat auch mal gedanken gemacht. war sau kompliziert und auf ne lösung sind wir auch nicht wirklich gekommen. wenn du aber was gefunden hast, dann wärs cool wenn du die lösung mal postest Lächel
  View user's profile Private Nachricht senden
gtz

Dabei seit: 15.04.2002
Ort: -
Alter: 48
Geschlecht: Männlich
Verfasst Sa 17.12.2005 15:02
Titel

Antworten mit Zitat Zum Seitenanfang

XSchinkenX hat geschrieben:
? Wiederholungen kannste doch durchs SELECT-Statement darstellen


Au weia! Hä?

im chat seinerzeit is uns keine zufriedenstellende möglichkeit eingefallen, diese umgangssprachlichen angaben zur wiederholung irgendwie algorithmisch abzubilden. ich will mich aber nich so recht damit abfinden. möglicher weise kommt einem da was beim programmieren in den kopf.

letzten endes läuft es ja eigentlich immer auf folgende schemata hinaus:

"jeden <n>-ten <wochentag> bis <wochentag>"

oder

"jeden <n>-ten <wochentag> bis <wochentag> in <zeitraum>" wobei zeitraum "jahr", "monat", "quartal" oder "semester" sein kann.

damit hat man zwar ncih alles abgedeckt, aber doch genuch, glaube ich.


Zuletzt bearbeitet von gtz am Sa 17.12.2005 15:14, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Backware

Dabei seit: 09.12.2004
Ort: bei Köln
Alter: 38
Geschlecht: Männlich
Verfasst Sa 17.12.2005 15:35
Titel

Antworten mit Zitat Zum Seitenanfang

tommy-p hat geschrieben:
Zitat:
jedes mal, wenn der termin aktiv war... setzt du iteration eine stufe niedriger (3 -> 2 -> 1 -> 0) sobald es bei 0 steht.. kommt die cleanUp Funktion, welche sämtliche einträge mit null wiederholungen aus der db löscht...


Ich denke, das wird nicht funktionieren. Denn du müsstest bei jedem Kalenderaufruf schauen, welche aller Terminwiederholungen in der jüngsten Vergangenheit lag, um die Iteration heraubzusetzen. Also Ein Termin soll ab dem 1.1.05 ganze 24mal wiederholt werden, im Abstand von 30 Tagen. (Wir ignorieren hier, das in deinem Modell wiederkehrende Termine am gleichen Monatstag nicht berücksichtigt werden können.) Was haben wir jetzt? wenn ich den Kalender am 2.12. aufrufe - woher weiß das Script, ob es die Iteration herabsetzen soll, oder ob das für den aktuellen Monat schon geschehen ist? Außerdem verschwinden nach diesem Modell alle Termine in der Vergangenheit, was auch nicht gut ist.


wenn du ausrechnest.. ob der termin angezeigt werden soll.. kannst du gleich mit der selben rechnung fast schon auch diese iterationsrechnung durchführen....
  View user's profile Private Nachricht senden
beeviZ

Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Sa 17.12.2005 16:14
Titel

Antworten mit Zitat Zum Seitenanfang

ich glaub das komplizierteste war damals für mich "Jeden Letzten dienstag/donnerstag/freitag/... im Monat" und halt ausnahmen wie "alle 3 wochen dienstags, ausser wenn vollmond is" oder so.

wobei das alles garnich sooo schwer sein kann.
  View user's profile Private Nachricht senden
Benutzer 16997
Account gelöscht Threadersteller


Ort: -

Verfasst Sa 17.12.2005 16:43
Titel

Antworten mit Zitat Zum Seitenanfang

habs gelöst Lächel




in dieser tabelle ist alles möglich, was in outlook auch möglich ist, abgesehen von der unterscheidung von werk- und feiertagen.

*Thumbs up!*


Zuletzt bearbeitet von am Sa 17.12.2005 16:44, insgesamt 1-mal bearbeitet
 
 
Ähnliche Themen Termine auf HP
RSS namespace für Termine
Termine auslesen - Need help
Termine online reservieren für WEB
Outlook Termine löschen
Termine an Outlook übergeben
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3, 4  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.