Datumssortierung und -vergleich DB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datumssortierung und -vergleich DB

    Hallo,

    ich habe (schon wieder) einige Fragen und würde mich freuen, wenn mir jemand da weiterhelfen könnte:

    Über ein Formular sollen die Besucher meiner Seite die Möglichkeit haben Termine einzutragen. - Da ich hier mit der unzureichenden Fähigkeiten der Besucher oder mit Schabernack (zum Beispiel Termineinträge für das Jahr 2050...) rechne, werde ich dies per DropDown-Felder (select/option) machen. Also werden die Besucher den Tag (01, 02, 03 ...), Monat (Januar, Februar, März...) und das Jahr (2008, 2009 ...) sozusagen vorgegeben bekommen und dies wird dann auch so in meiner Datenbank entsprechend gespeichert (jeweils 1 Feld).
    Nun möchte ich folgende Sache bewerkstelligen:
    1. Das Datum vom Termin sollte bereits in der Formular-Senden-PHP umgewandelt werden und als 4. Feld in der Tabelle gespeichert werden, da ich die Einträge sortiert nach dem Datum (Jahr, Monat, Tag) später ausgeben möchte.
    2. Der Termin soll mit dem aktuellen Datum verglichen werden (ich möchte veraltete Termine in der Ausgabe "ausfiltern").

    Hat jemand diesbezüglich einen konstruktiven Vorschlag, wie dies geschehen könnte?
    Zuletzt geändert von ACRDF; 14.05.2008, 09:04.

  • #2
    zu 1)
    Wieso nochmals das Datum des Termins speichern. Du hast es ja bereits in den drei Spalten (obwohl ich es sinnvoller finde nur eine Spalte zu verwenden!!)
    Ich würde auf jeden Fall das Datum in EINE Spalte speichern. Dann kannst du mit den Zeitfunktionen von mysql arbeiten. Ansonsten müsstest du (bei drei Spalten) das Datum immer erst zusammensetzen, um dann eine MySql-Zeitfunktion darauf auszuführen
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Also ich MUSS es unbedingt in 3 Spalten speichern, da es für die Ausgabe ganz entscheidend ist (gebe Jahr, Monat, Tag an unterschiedlichste Stellen heraus). Die 4. Spalte mit der vorhergehenden Umwandlung ist unter anderem dazu gut, dass ich die Ausgabe nach der 4. Spalte sortiert ausgeben möchte und wahrscheinlich ein vergleich des aktuellen Datums mit dem Datumformat der 4. Spalte am Einfachsten wäre.

      Kommentar


      • #4
        Original geschrieben von ACRDF
        Also ich MUSS es unbedingt in 3 Spalten speichern, da es für die Ausgabe ganz entscheidend ist (gebe Jahr, Monat, Tag an unterschiedlichste Stellen heraus).
        Das ist doch kein Grund. MySQL hat auch Funktionen, die dir nur Jahr, Monat oder Tag eines Datums liefern.

        Kommentar


        • #5
          Also ich MUSS es unbedingt in 3 Spalten speichern, da es für die Ausgabe ganz entscheidend ist (gebe Jahr, Monat, Tag an unterschiedlichste Stellen heraus). Die 4. Spalte mit der vorhergehenden Umwandlung ist unter anderem dazu gut, dass ich die Ausgabe nach der 4. Spalte sortiert ausgeben möchte.
          Brauchst du trotzdem nicht drei Spalten dazu. Beim Auslesen kannst du das Datum mittels mysql_Zeitfunktionen umformatieren, um dir z.B. den Tag, den Monat und das Jahr als einzelne Werte zu holen.
          Du musst dir das ungefähr so vorstellen: Du hast eine Spalte in der DB mit der Grösse in Byte eines Files. Jetzt willst du die Grösse aber in KB, MB und GB ausgeben. Dazu könntest du 3 neue Spalten anlegen und die Werte reinschreiben. Oder du verwendest nur eine Spalte (Byte-Spalte) und formatierst die Werte beim Auslesen in KB etc um.
          4 Spalten für ein Datum ist etwas gar deftig
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Na OK... Ihr habt mich überzeugt.

            Wie löse ich nun die ganze Problematik?
            1. Die Umwandlung in das Datum-Format (vor dem Abspeichern in die Tabelle)?
            2. Datumsvergleich mit aktuelles Datum?
            3. Datumsteilausgaben?

            Kommentar


            • #7
              1. setzt doch das Datum mittels PHP aus den Usereingaben zusammen. Dabei musst du das Vorgabeformat für Datum seitens MySql beachten.
              2. WHERE datum1=datum2
              3. z.B. mit DATE_FORMAT(date,format)
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar

              Lädt...
              X