Nadja: MySQL-Befehl richtig?

Hallo,

habe folgenden MySQL-Befehl gebastelt

SELECT
    *
FROM
    hb_newsletter_ex
WHERE UNIX_TIMESTAMP('".date('Y-m-d',time())." 00:00:00')+1000*60*60*24*13 > ".time()."
  AND UNIX_TIMESTAMP(showdatum) >= UNIX_TIMESTAMP('".date('Y-m-d',time())." 00:00:00')
ORDER BY
    showdatum ASC

Der funktioniert auch - jedenfalls kommt kein Fehler raus.

Der Code soll alle Einträge "showdatum" ausgeben, die innerhalb der nächsten 13 Tage ab heute liegen.

Kann mir jemand sagen, ob das richtig ist bzw. kann mir das jemand korrigieren?

1000 Dank,

Nadja

  1. Halihallo Nadja

    SELECT
        *
    FROM
        hb_newsletter_ex
    WHERE UNIX_TIMESTAMP('".date('Y-m-d',time())." 00:00:00')+1000*60*60*24*13 > ".time()."
      AND UNIX_TIMESTAMP(showdatum) >= UNIX_TIMESTAMP('".date('Y-m-d',time())." 00:00:00')
    ORDER BY
        showdatum ASC

    Warum soviele Konvertierungen und Vermischungen mit PHP?

    Der Code soll alle Einträge "showdatum" ausgeben, die innerhalb der nächsten 13 Tage ab heute liegen.

    http://www.mysql.com/doc/en/Date_and_time_functions.html

    DATE_ADD(showdatum, INVERVAL 13 DAYS)

    ist wesentlich effizienter, als die Daten (pl. Datum) zu konvertieren und die von PHP
    generierten Strings zu parsen bzw. erst zu erstellen.

    Zudem: Das aktuelle Datum ist die Funktion NOW() in MySQL. Du brauchst das aktuelle Datum
    nicht über PHP's "date" zu erstellen.

    Kann mir jemand sagen, ob das richtig ist bzw. kann mir das jemand korrigieren?

    Der erste WHERE-Teil ist völlig redundant, da
    UNIX_TIMESTAMP('".date('Y-m-d',time())." 00:00:00')+1000*60*60*24*13 > ".time()."
    stehts wahr ist. Heute in 13 Tagen wird immer grösser sein, als heute. Dies würde
    lediglich Sinn machen, wenn du ".time()." durch UNIX_TIMESTAMP(showdatum) ersetzen
    würdest.

    Folglich:

    WHERE
       showdatum <= DATE_ADD(showdatum, INTERVAL 13 DAYS) AND
       showdatum >= NOW()

    Basta.

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
    1. Hi,

      vielen lieben Dank ... wußte nicht, dass es mit MySQL auch so geht.

      N.