Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum hinzufügen: PHP oder MySQL Funktion

Einklappen

Neue Werbung 2019

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

  • Datum hinzufügen: PHP oder MySQL Funktion

    Hallo zusammen

    Ich stehe gerade vor dem Problem einer (MySQL-)Tabellenzelle ein Datum in der Form von 09.12.2006, Samstag hinzuzufügen.

    Nun frage ich mich ob ich das Datum per PHP oder MySQL hinzufügen sollte. Und wenn mit MySQL denke ich die DATE_FORMAT() wäre passend. Müsste ich dann der Tabellenzelle statt DATETIME DATE_FORMAT(%d.%c.%Y, %a) geben, zusammen mit den gewünschten Formatierungsparametern? Und als Funktion zum hinzufügen dennoch NOW()?

    Die Zelle hatte bisher den Typen DATETIME und die verwendete MySQL Funktion war NOW().

    Habe mir die MySQL Date and Time Functions angesehen. Da ich aber noch nie damit gearbeitet habe, komme ich bei der Anzahl der Funktionen nicht wirklich weiter

    Grüsse,
    Lloyd

  • #2
    grundsätzlich ist es sinnvoll, in der tabelle eine normalform wie z.b. einen timestamp zu speichern und daraus später den gewünschten string zu generieren.

    Kommentar


    • #3
      Hallo,
      du solltest keine redundanten Daten in die Datenbank einfügen, das könnte zu Inkonsistenz führen.
      Will sagen, PHP und MySQL wissen beide von sich aus, dass der 09.12.2006 ein Samstag war. Es reicht also, das Datum ohne Wochentags-Angabe zu speichern.

      Speicher Daten (Datums) immer im hauseigenen Format, also bei MySQL mit DATE ab.
      Den Tag und das Format der Darstellung kannst du jederzeit durch MySQL oder PHP bestimmen und ausgeben.

      In einer Datenbank sollten ja so wenig wie möglich Formatierungen gespeichert sein, um die Daten danach vielseitig einsetzen zu können. Wenn du dich für die deutsche (oder Liechtensteiner) Datums-Formatierung entscheidest, entfallen die Sortierungs- und Berechnungsmöglichkeiten, die MySQL und PHP für das englische Format bereits implementiert haben.

      Kommentar


      • #4
        Achso, klar! Danke für den Hinweis

        Habe jetzt für die Zelle Datum den Type DATE genommen, der ich über NOW() das Datum in der Form von 0000-00-00 übergebe. Das funktioniert auch soweit.

        Nur wenn ich das Datum durch die MySQL Funktion DATE_FORMAT ausgeben möchte, bekomme ich eine Fehlermeldung.
        PHP-Code:
            $sql "SELECT DATE_FORMAT('Datum', '%d.%c.%Y, %a') FROM test";
            
        $result mysql_query($sql);
            while(
        $row mysql_fetch_object($result)) {
                echo 
        "$row->Datum
        "
        ;
            } 
        Fehlermeldung:
        Code:
        Notice: Undefined property: stdClass::$Datum in C:\Programme\xampp\htdocs\projekte\myaccountant\backup\test.php on line 22
        Wobei Zeile 22 die Zeile mit echo "$row->Datum ist.

        Kommentar


        • #5
          Du solltest dem ganzen jetzt noch einen Alias geben, dann kannst du einfacher auf die Ergebnisse zugreifen. (das ganze ist jetzt nicht mehr unter $row->Datum zu finden).
          SELECT DATE_FORMAT(spalte, "...") AS datumF FROM ...

          ist dann ansprechbar über $row->datumF
          Und:
          Steht in deinem Query wirklich DATE_FORMAT('Datum', ....) oder sollte das nur ein Beispiel sein - denn die Anführungszeichen gehören da nicht hin wenn deine Spatle "Datum" heißt.

          Kommentar


          • #6
            Vielen Dank für die Hilfen, funktioniert nun alles wunderbar! Aber ich sehe schon, mir fehlt grundlegendes. Leider geht PHP5 Grundlagen und Profiwissen nur ungenau auf die verschiedenen MySQL Funktionen ein.

            Kann mir vielleicht jemand ein umfangreiches Tutorial oder auch Buch zu PHP/MySQL empfehlen?

            Regards,
            Lloyd

            Kommentar

            Lädt...
            X