Kommunikation zwischen PHP und MySQL - mehrere Kleinigkeiten

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

  • #16
    Mir ist es ja wirklich schon unangenehm immer wieder ein neuen Post, für ein so blödes Datum zu erstellen und euch damit zu penetrieren, aber dat funktioniert all nicht.

    Momentaner Code:
    PHP-Code:
    echo strftime ("%A, %d.%m.%Y<br />", ($row->datum)); 
    Ergebnis:
    Donnerstag, 01.01.1970


    Das ist ganz einfach mein Problem. Ich seh' es jetzt schon kommen, dass irgendwo 'ne Klammer, 'nen Hochkomma und sonst irgendwas fehlt - aber gerade das wäre dann (glaube ich) nicht genügend dokumentiert gewesen.

    Kommentar


    • #17
      ein var_dump() von $row->datum zeigen.

      Kommentar


      • #18
        Original geschrieben von TomFresh
        Ich seh' es jetzt schon kommen, dass irgendwo 'ne Klammer, 'nen Hochkomma und sonst irgendwas fehlt -
        Ich seh kommen, dass du gar keinen UNIX Timestamp in der Spalte datum vorliegen hast, sondern einen der Datums-Typen von MySQL.
        aber gerade das wäre dann (glaube ich) nicht genügend dokumentiert gewesen.
        Gibt's eigentlich irgendwas, was deiner Meinung nach ausführlich genug dokumentiert ist ...?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #19
          So - nachdem ich mich mit einer anderen Sprache beschäftigt habe (italienisch) bin ich wieder dabei (sorry für den off-topic)

          var_dump() gibt z.B. dieses hier aus:
          string(10) "2007-01-25"

          Weil es natürlich mehrere Datensätze gibt, variiert das Datum.


          Jetzt nochmal schnell off-topic: Auch wenn CSS vom Funktionsumfang, von der Komplexität der Sprache und von den Möglichkeiten vergelichbar ist, so ist es wesentlich besser erklärt. PHP ist ja gut dokumentiert, aber teilweise sehr mangelhaft erklärt. Ein weiteres Beispiel: schattenbaum erklärt PHP recht, genauso wie es SQL recht gut erklärt. Aber was dazwischen passiert muss der Anfänger sich zusammenfrickeln und ausprobieren.

          Kommentar


          • #20
            Original geschrieben von TomFresh
            var_dump() gibt z.B. dieses hier aus:
            string(10) "2007-01-25"
            Gut, also ist es kein UNIX Timestamp.

            Also entweder String auseinander nehmen, und mit mktime aus den Komponenten einen Timestamp machen (obwohl, strtotime sollte das Format auch verstehen), oder direkt MySQL-seitig schon formatiert auslesen - Datums-Funktionen, siehe Manual.

            Ein weiteres Beispiel: schattenbaum erklärt PHP recht, genauso wie es SQL recht gut erklärt. Aber was dazwischen passiert muss der Anfänger sich zusammenfrickeln und ausprobieren.
            Tja, sich selber ein paar Zusammenhänge zu erschliessen, gehört zum Programmieren nun mal auch dazu.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Dann will ich das Thema nochmal kurz von der anderen Seite angehen. Wie müsste das Datum in der Tabelle stehen, damit ich ohne weitere Probleme mein strftime anwenden kann?!
              Ich mach mir hier echt Probleme, die noch total unnötig sind, weil ich die Datenbank ja noch abändern kann...

              Kommentar


              • #22
                Original geschrieben von TomFresh
                Dann will ich das Thema nochmal kurz von der anderen Seite angehen. Wie müsste das Datum in der Tabelle stehen, damit ich ohne weitere Probleme mein strftime anwenden kann?!
                Als U... T...s...p!
                Der Begriff ist doch nun wohl oft genug gefallen ...
                Ich mach mir hier echt Probleme, die noch total unnötig sind, weil ich die Datenbank ja noch abändern kann...
                Das solltest du aber lieber lassen.
                Dass es sehr viel zweckmässiger ist, einen der Datumstypen von MySQL zu wählen, haben wir hier ja schon des öfteren besprochen - und auch, warum.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #23
                  Juhuu, das eine Problem hätte ich schonmal beseitigt. Nun wird das Datum korrekt in die Datenbank geschrieben....

                  PHP-Code:
                  $datum mktime(0,0,0,$_POST["monat"],$_POST["tag"],$_POST["jahr"]); 
                  ... und kann somit auch korrekt, nach meinen Wünschen ausgegeben werden...

                  PHP-Code:
                  echo strftime ("%A, %d.%m.%Y<br />", ($row->datum)); 
                  Aber auch hier (und jetzt muss ich im kurz bei SQL einhaken): Das Feld in der Tabelle war zunächst ein "timestamp-Feld". Damit hat es nicht funktioniert. Jetzt ist der Typ varchar und damit funktioniert es wunderbar. Mal abgesehen von der Funktionstüchtigkeit - ist das so korrekt?!

                  Naja, immerhin ein Erfolg - auch dank euch
                  ---------------------------------------------------------------------------

                  Prüfst du denn auch noch, ob überhaupt POST-Daten übergeben wurden?
                  Beim Erstaufruf des Scriptes über GET dürfte das ja kaum der Fall sein ...
                  Antwort:
                  PHP-Code:
                  <?php if(!isset($_POST['submit'])) { ?>
                  Ich wüsste nicht, dass ich mein Script über GET aufrufe...

                  Also das Problem besteht leider immernoch, dass beim Laden der Seite, mit der ich einen neuen Eintrag in die Datenbank erstelle, sofort, ohne Klick auf den submit-Button ein Eintrag erstellt wird. Darüberhinaus funktioniert der Button zusätzlich auch noch.

                  Kommentar


                  • #24
                    Original geschrieben von TomFresh
                    Aber auch hier (und jetzt muss ich im kurz bei SQL einhaken): Das Feld in der Tabelle war zunächst ein "timestamp-Feld". Damit hat es nicht funktioniert. Jetzt ist der Typ varchar und damit funktioniert es wunderbar. Mal abgesehen von der Funktionstüchtigkeit - ist das so korrekt?!
                    Das ein UNIX Timestamp, wie ihn die Datumsfunktionen von PHP verwenden, und der TIMESTAMP-Datentyp von MySQL etwas grundverschiedenes sind, wurde bereits implizit erwähnt.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X