Veranstaltungsdatenbank

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

  • Veranstaltungsdatenbank

    Habe eine Veranstaltungsdatenbank und will auf der Startseite immer den Aktuellen(Datum) ausgeben wie muß ich die Abfrage daszu machen.

    Die Datenbank soll folgendes Aussehen nachher haben.
    Datum Anfang(varchar)| Datum Ende(varchar)| Title(Text)| Beschreibung(Longtext)|

    So und nun eine Datensatz:
    1)01.02.2002
    Wiedereröffnung des Zentrum

    Endlich ist die Winterpause vorbei......

    2)10.02.2002 - 11.02.2002
    Seminar zum Thema

    Auch dieses Jahr bieten wir unser Bekanntes.....

    Jetzt will ich auf der Startseite immer nach dem Aktuellen Datum die nächstfolgende Veranstaltung angezeigt bekommen.

    Wie muß ich die Abfrage machen?
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    Datum_Anfang und Datum_Ende als timestamp oder anderes Datefeld. Nach dem Auslesen kannst du es ja dann formatieren.

    SELECT * FROM veranstaltungskalender WHERE datum_anfang>=NOW() ORDER BY datum_anfang DESC

    CAT Music Files

    Kommentar


    • #3
      Wie kann ich ein timestamp Feld formatieren?

      timestamp Felder sind doch irgendwelche Nummerischen Zahlen, zusammen gesetzt aus Datum und Uhrzeit oder?
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        Timestamp-Felder kannst du beim SELECT mit DATE_FORMAT() formatieren (z.B. SELECT DATE_FORMAT("%d.%m.%Y",timestamp)) oder, wenn du es per SELECT UNIX_TIMESTAMP(timestamp) holst, dann in PHP mit date(). Standardmäßig (SELECT timestamp) wird so ein Feld in der Form Y-m-d H:i:s ausgegeben.

        CAT Music Files

        Kommentar


        • #5
          SELECT * FROM veranstaltungskalender WHERE datum_anfang>=NOW() ORDER BY datum_anfang DESC
          SELECT DATE_FORMAT("%d.%m.%Y",timestamp))
          zum ersten Quote:
          Was ist das NOW() genau? DESC ist doch die Ausgabe in Umgekehrter Reihenfolge, ich will aber nur einen Datensatz haben.

          zum zweiten Quote:
          Wie verbinde ich die beiden Abfragen?
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            NOW() gibt das aktuelle Datum zurück - Form je nach Anwendungsbereich...

            Verbinden:
            SELECT DATE_FORMAT("%d.%m.%Y",datum_anfang)) AS datum_anfang_formatiert,DATE_FORMAT("%d.%m.%Y",datum_ende)) AS datum_ende_formatiert,title,beschreibung FROM veranstaltungskalender WHERE datum_anfang>=NOW() ORDER BY datum_anfang ASC

            Bermerkung: DESC oben ist falsch - muss ASC sein...

            CAT Music Files

            Kommentar


            • #7
              ASC
              Was bewirkt jetzt ASC? Nur einen Datensatz oder was?
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                Nein, das wäre LIMIT 1... ORDER BY feld ASC sortiert aufsteigend (also das kleinste Datum zuerst - kann man prinzipiell auch weglassen, weil es die Voreinstellung ist). Absteigend wäre ORDER BY feld DESC.

                CAT Music Files

                Kommentar


                • #9
                  Also müßte ich Limit 1 angeben um den Datensatz zubekommen der den Aktuellen Datum am nächsten ist?
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #10
                    Ich würde kein Timestamp feld benutzen, wenn Du irgendwas an den Feldern per Script änderst ändert sich auch der Timestamp, ausser Du verhinderst es...
                    Nimm doch ganz einfache datumsfelder und check ab mit der MySQL funktion SUBDATE() welches Datum das nächste is...
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar

                    Lädt...
                    X