Fragen für Terminescript

  • Hallo,


    ich bin dabei meine Seite in PHP umzuschreiben, also ich möchte die Termine alle in eine Textdatei speichern und dann auslesen lassen.


    Meine Fragen:


    1. Es gibt 2 Arten von Termine. Die eine extern die für alle sichtbar sind und die anderen im internen Bereich wo noch der Treffpunkt mit Uhrzeit dazukommt. Es können im internen Bereich aber auch Termine sein die im externen nicht vorhanden sind.
    Ist das machbar das ich die Termine nur 1x eingebe und dann mit ein Input Feld type checkbox die jeweiligen Daten speichere. Es kann ja vorkommen das der Termin im externen und internen Bereich vorkommt.


    2. Ich möchte die ganzen Termine 2004 auf einer Seite haben, und wenn jetzt 2005 kommt sollte unten der Link sein Termine 2004.
    Sollte ich da die Termine pro Jahr speichern oder alle Jahre in eine Textdatei?


    3. In den externen Termine sollte man auch diese Grafik dazufügen können wo sich dann die PDF datei öffnet.



    Das sind mal meine ersten Fragen bevor ich anfange. :)


    Vieleicht könnt Ihr mir ja einen Rat geben.


    Hier mal der Link: [EMAIL=http://www.mkauer.it/termin.php]Termine[/EMAIL]


    mfg
    Dieter

    • 1) Selbstverständlich geht das. Du speicherst dann in einer Zeile halt den Termin, nimmst ein Trennzeichen ( \t ) und dann halt einfach 0/1 als boolean Wert ( \t ) sonstige Informationen.


      Das Auslesen geht dann mit

      PHP
      1. <?php
      2. foreach( file ( $datei ) as $line ){
      3. list($termin, $bool, $misc) = explode( "\t", $line);
      4. //In $bool hast du ja jetzt public/nicht public
      5. }
      6. ?>


    • 2) Das ist relativ egal - ist nicht mal eine Preformance Frage. Wobei ich; rein subjektiv; es praktischer finde, für jedes jahr eine eigene Datei zu verwenden; das Handling ist meiner Meinung nach einfacher.
    • 3) Jopp, auch dies ist kein Problem. Du speicherst ja in der txt Datei, ob der termin extern oder intern (bzw beides ist) und kannst dann jeden einzelnen case einzeln behandeln.


    [edit by $elf]
    Ich würde sogar; wenn es nicht gerade 12.000 Termine sind; jeden Termin in einer einzelnen Datei speichern; dann kannst du viele Informationen in den Headern speichern und sparst somit Speicherplatz.
    [/edit]

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Das mit dem Trennzeichen kann aber zweideutig sein, besser wäre ein Format/Struktur für die Datei:
    - erste x Bit die Länge der nachfolgenden Daten
    - die Daten selbst
    Für den schnelleren Zugriff auf einen bestimmten Datensatz könnte man einen Index einführen, so wäre es fast datenbanknah, fast weil die Datei leider immer komplett eingelesen wird.

  • Hallo,
    erstmal danke für eure Meinungen.


    Habe noch ein paar Fragen



    Interne Termine:
    Beim Datum kann auch von-bis sein und die Uhrzeit auch z.b. ganztägig und gewisse Felder können auch leer sein und es wird in Farben unterteilt:
    Grau = ganze Kapelle
    blau = kleine Gruppen
    grün = andere
    Aber das ist ja kein Problem. Da übergebe ich einfach die class="..." also CSS pro termin


    Legende: Ganze Kapelle Kleine Gruppen Andere


    TG Datum Uhrzeit Terminbeschreibung Treffpunkt Uhrzeit
    24.-25. Jänner Skiwochenende Speikboden Probelokal 07:00
    DI 27. Jänner 14:00 Beerdigung Kaufmann Heinz Kirchplatz 14:30


    Externe Termine
    03. Jänner Ganztägig Bläsergruppe spielt beim Dreikönigsturnier des Fussballclubs
    Das größere Problem sehe ich beim Datum. Dort muss ich glaube einfach nur ein Textfeld machen da sonst von bis nicht geht.


    Dennis The Menace

    Zitat

    1) Selbstverständlich geht das. Du speicherst dann in einer Zeile halt den Termin, nimmst ein Trennzeichen ( \t ) und dann halt einfach 0/1 als boolean Wert ( \t ) sonstige Informationen.


    Kann man nicht einfach im String 0 reintun für extern, 1 für intern, und 2 für beide?


    Strogij

    Zitat

    Das mit dem Trennzeichen kann aber zweideutig sein, besser wäre ein Format/Struktur für die Datei:
    - erste x Bit die Länge der nachfolgenden Daten
    - die Daten selbst
    Für den schnelleren Zugriff auf einen bestimmten Datensatz könnte man einen Index einführen, so wäre es fast datenbanknah, fast weil die Datei leider immer komplett eingelesen wird.


    Das verstehe ich nicht richtig. Kannst du mir ein Beispiel machen.
    Es sind aber ja nur ca. 50 Termine pro Jahr


    Die Termine werden alle nach DATUM SORTIERT und die Trennung ist @@


    Habe mal ein Testacount angelegt. Da könnt ihr es euch anschauen.
    Benuzter: test
    Passwort: test


    mfg
    Dieter

  • Deswegen solltest du auch eine Struktur machen: erstmal die Länge speichern und danach halt den Text - so kannst du erkennen wo was anfängt und wo es endet.
    5Hallo Wäre also ein Datensatz (5 für die Länge und dann der Text selbst).

  • Hallo


    Muss ich das Trennzeichen trotzdem machen?
    Man kann das doch auch mit explode auslesen lassen.


    Ich verstehe nicht ganz den Hintergrund der Sache.
    Muss ich es dann so machen, das wird doch kompleziert zu erstellen.
    und ich glaube das das | nicht verwendet wird und auch nicht das @@.


    1424.-25. Jänner 24Skiwochenende Speikboden 10Probelokal 507:00


    Aber das größere Problem ist das erstellen der Termine für Extern, intern, und beide.
    Ich mache dort 3 input Felder mit Checkbox. Soll man diese z.b. so speichern
    ...@@0@@1@@2@@
    0 ist extern
    1 ist intern
    2 ist beide


    oder alle zwischen 1 @@


    Am Anfang der Zeile speichere ich sowieso das Datum so ab. 20041104
    wegen dem sortieren.


    Ich frage nur damit ich richtig anfange das ganze zu erstellen



    Grüße
    Dieter

  • Nein, dann müsstest du keine Trennzeichen setzen, das ist es ja. Trennzeichen sind eine schlechte Sache, es könnte jemand was eintragen, was einem Trennzeichen entspricht und somit alles zerhauen. Für von mir vorgestellte Struktur musst du zwar eigene Parser erstellen, dafür ist es allerdings sicher.

  • Ich frage nur für später wegen der Abfrage wo der Termin angezeigt wird: extern, intern oder beide. Damit ich nicht zu viel if schleifen erstellen muss.


    sollte ich dann das so speichern
    ...@@0@@1@@2@@
    0 ist extern
    1 ist intern
    2 ist beide


    oder nur mit einer input (runden Knopf ich weiss momentan nicht wie er heist) und somit so ...@@0@@ also nur den ausgewählten Wert. Ist für mich vieleicht logischer oder?
    Dann kann ich bei den externen Terminen z.b.
    if (eintrag[3] == "0" and "2")
    echo "termin anzeigen"


    oder so


    mfg
    Dieter

  • Mein Vorschlag (ist am einfachsten mit zu Handeln)


    Pro Termin eine eine Datei.
    Und dann nach Zeilen exploden:


    1) Der String ob intern/extern oder beides
    2) Terminbeschreibung


    Als Dateiname benutzt du den Timestamp, an dem der Termin beginnt,
    als Dateidatum (header) nimmst du das Ende des Termins


    Zeilenumbrüche \n musst du dann logischerweise aus der Terminbeschreibung rausfiltern. Da das mit nl2br nicht immer geht, hab ich mal eine eigene Funktion dafür geschrieben.



    Die Funktion wandelt jeglichen Zeilenumbruch in ein (wahlweise <br>) um.
    Das Auslesen geht nun relativ einfach:


    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Ojeeeh, das ist ja kompleziert.


    Mein PHP ist sowieso in der Anfangsphase :)


    also vorweg. Zeilenumbrüche werden keine sein die einer im input feld macht denn ich mache ja nur ein text feld.


    Da kommen ja aber zick Dateien zusammen in ein paar Jahre denn ich möchte ja in alten auch noch einsehen können.



    Kannst du mir mal ein beispiel machen, wie ich die TXT Datei deiner Meinung nach aufbauen soll.


    20041103@@23.10.2004@@11:00@@Das ist ein Test@@Probelokal@@09:00@@extern intern beides??@@css Klasse@@Information für PDF Anhang für extern


    Ich weiss ich nerve aber wenn ich nur PHP könnte ...


    mfg
    Dieter

  • Du sagstes jetzt 50 Termine im Jahr, dass sind bei 10 Jahren im Vorraus 500 Dateien, damit hat dein Betriebsystem generell keine Schwierigkeiten :)


    Also, wenn du für jedes Jahr nur eine Datei benuten willst sieht der Aufbau wie folgt aus:


    datumbegin (tab) datumende (tab) public (tab) Terminbeschreiung
    datumbegin (tab) datumende (tab) public (tab) Terminbeschreiung
    datumbegin (tab) datumende (tab) public (tab) Terminbeschreiung


    Ein tab (php code: \t) lässt sich per Inputfeld ebenfalls nicht weitergeben.
    Außer, man versucht es absichtlich, zu zerstören :)


    Bei dieser Varriate wäre der Auruf


    PHP
    1. <?php
    2. foreach( $file = ( $dateidesdatums ) as $line )
    3. {
    4. list( $begin, $ende, $public, $termin ) = explode( "\t", $line );
    5. }
    6. ?>


    Wenn du z.b. für jeden Termin eine eigene Datei verwendest,


    benutzt du die erste Zeile für die intern/extern information
    und die Zweilte Zeile ganz einfach für die Terminbeschreibung.


    Die Information, wann der Termin beginnt, packst du in den Dateinamen,
    die Information, wann der Termin endet, in den "Header" der Datei (z.b. der touch)


    Der Aufruf wäre dann wie in meinem Vorherigen Post erklärt.

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • Na dann,


    danke erstmals.
    Werde mich mal an die Input Maske setzten und was machen. Es werden sicher noch ein paar Fragen kommen.


    Werde mal für jedes Jahr eine Datei machen.


    Grüße
    Dieter

  • Wir leisten dir gerne seelischen Beistand ;)

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!

  • mike


    ich versuche es mal mit der txt dp api. Habe sie mir schon runtergeladen und installiert. Das ging mal gut :)


    Habe hier im Forum glaube ich mal ein Link gesehen wo ich Datenbanken mit den ganzen Tabellen und Namen Grafisch zeichnen kann, wo man dann die ganzen Verknüpfungen mit den ID sieht.
    Habe schon unter Struktur Baumstruktur gesucht aber nicht gefunden.


    Vieleicht kann mir einer den Link geben?


    mfg
    Dieter