[SQL allgemein] Datum in Tabelle eintragen

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

  • [SQL allgemein] Datum in Tabelle eintragen

    Hallo.

    Ich versuche ein aktuelles Datum in eine Tabelle einzutragen.
    Leider gelingt mir das net. Er spuckt immer wieder den 01.01.70 aus -.- Wenn ich ein php script schreibe wo folgendes drin steht:

    <?php
    echo date("d.m.Y");
    ?>

    gibt er mir das aktuelle datum von heute aus.
    jetzt versuche ich das in ne tabelle zu übertragen.
    da weiss ich aba net wies geht. so habe ichs probiert.

    <?php ... ... ...

    $datum = date("d.m.Y");

    $mysqlhost="xxx";
    $mysqluser="xxx";
    $mysqlpwd="xxx";
    $mysqldb="xxx";

    $connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Es konnte keine Verbindung zur Datenbank hergestellt werden.");

    mysql_select_db($mysqldb, $connection) or die("Datenbank wurde nicht gefunden.");


    mysql_query("INSERT INTO fusion_downloads VALUES('', '$titel', '$beschreibung', 'http://wh.freehostia.com/?$url', '$kategorie', '$passwort', '$nickname', '', '$groesse $einheit', '$datum', '')") or die(ERROR);
    echo "<b>blubber die blub, fertig</b>";

    }

    ?>

    Das funzt natürlich net. Er gibt später in der abfrage wieder den 01.01.70 aus -.- kann mir pls jemand posten wie ich das richtig mache -.- habe schon gegoogelt aba ich bin atm a bissl zu blöd o_O

    Thx und mfg, Trashkiller!

  • #2
    1. [PHP]-tags des forums nutzen ^^v
    2. Welches Format hat das Tabellenfeld fürs Datum?
    Bitte Beachten.
    Foren-Regeln
    Danke

    Kommentar


    • #3
      ka ob du das meinst
      hoffe du kanns was damit anfangen

      download_datestamp int(10) UNSIGNED Nein 0
      (Spalte in Tabelle)

      Kommentar


      • #4
        Original geschrieben von Trashkiller
        ka ob du das meinst
        hoffe du kanns was damit anfangen

        download_datestamp int(10) UNSIGNED Nein 0
        (Spalte in Tabelle)
        $datum = date("d.m.Y"); <- ist keine Zahl, da 00.00.0000!!!!!!!
        mach VARCHAR draus und es wird gehen...
        Am besten ist es aber trotzdem das Datum als date Typ zu speichern.
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          oder time() speichern und dann date("...",$mysql['timestamp']);
          mfg

          Kommentar


          • #6
            Original geschrieben von Damian1984
            mach VARCHAR draus und es wird gehen...
            [/B]
            varchar is garnet drin o_O

            Kommentar


            • #7
              Original geschrieben von Trashkiller
              varchar is garnet drin o_O
              klar?! Statt INT VARCHAR! Schau dir mal PHPMyAdmin genauer an..

              Kommentar


              • #8
                Oje mach varchar draus...
                mach date draus und sonst nichts dann haste auch ein datum
                das aktuelle datum ist in mysql z.B. current_date()
                also
                set date_col = current_date()

                was isn dasin deinem code: or die(ERROR); ???
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  ok habs jetzt
                  musst nur date() mit time() ersetzen
                  jetzt läufts perfekt
                  vielen dank

                  Kommentar


                  • #10
                    Original geschrieben von Trashkiller
                    ok habs jetzt
                    musst nur date() mit time() ersetzen
                    jetzt läufts perfekt
                    vielen dank
                    Dann hast du es aber immernoch mit INT in der DB gespeichert?
                    Für Rechtschreibfehler übernehme ich keine Haftung!

                    Kommentar


                    • #11
                      Dann hast du es aber immernoch mit INT in der DB gespeichert?
                      Rückgabewert von time() ?

                      Gruss

                      tobi
                      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


                      • #12
                        Mit den Datumsspalten hab ich noch nie gearbeitet ..... ich mach alles über INT UNSIGNED


                        Problemstellung:
                        Geburtsdatum vor 1970

                        .... eine der Varianten der Datumsspalten kann das speichern .... aber dabei würde dann meine fixe Zeilenlänge flöten gehen, weil sie nach 1970 als Zahl und vor 1970 als Text speichert oder glaeich mit CHAR brauchts zu viel Speicherplatz (11 Bytes bzw 8 ohne Trennzeichen)
                        ....wenn ich da falsch liege... bitte korrigieren... hab mich mit dem Thema nicht besonders lange aufgehalten


                        meine Lösung:
                        den Tag speichere ich in einem Feld des Typs INT UNSIGNED (in einem Schaltjahr) .... das Geburtsjahr in einer anderen Spalte mit dem Typ TINYINT UNSIGNED .... => 5 Bytes
                        Ein Geburtsdatum im Jahr 1901 (1900 == kein Geburtsdatum) ist also kein Problem (obwohl ich bezweifle, das jemand mit 106 Jahren mein Forum besuchen wird )

                        Die Geburtstagskinder-liste läßt sich auch spielend einfach abfragen



                        Frage:
                        ..... gibts dafür eine professioneller Lösung mit den Datumsspalten ????
                        Kann mir nämlich nicht vorstellen, daß es den Programmierern von MySQL entgangen ist, daß Geburtstage vor 1970 und Geburtstagskinder-abfragen Standardaufgaben sind

                        Danke

                        Kommentar


                        • #13
                          Also mal am Rande bemerkt zum Ursprungsproblem:

                          ein datum gehört in der db in eine Datumsspalte.

                          wenn man den time() Rückgabewert von php als int speichert hat man wieder probleme mit daten vor 1970.

                          mit daten vor 1970 kann man zB in mysql aber super rechnen

                          Datum als varchar -> völliger Blödsinn hunderte Fragen auch hier im Forum drehen sich schon darum (Warum sortiert meine DB falsch, etc)

                          zum Speicherbedarf
                          aus dem manual:
                          Speicheranforderungen für Datums- und Uhrzeittypen
                          Datentyp Erforderlicher Speicherplatz
                          DATE 3 Byte
                          Hier steht nichts von unterschiedlichem Speicherbedarf vor und nach 1970
                          Beantworte nie Threads mit mehr als 15 followups...
                          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                          Kommentar


                          • #14
                            ..... ich hab jetzt nochmals nachgeschaut wegen der variablen Länge ... und nichts gefunden .... hab ich mich damals wahrscheinlich verlesen.

                            Habs jetzt ausprobiert und die Zeilenlänge ist wirklich starr. Der Speicherbedarf ist allerdings 5 Bytes laut PHPmyadmin (hätte mich auch gewundert, bei dem Datumsbereich)

                            .... gut ...

                            Die umwandlung in das Format 12. February 1965 ist danach (etwas umständlich für meinen Geschmack)
                            PHP-Code:
                            $datum explode'-' $datum );
                            $datum $datum[2] . '. ' $monatsnamen[$datum[1]] . '  ' $datum[0] ; 

                            .... wie geht das aber dann mit der Geburtstagskinder-Abfrage?????

                            SELECT name FROM tbl WHERE datum LIKE '%01-07' ...... ???????????????

                            You know ... I don't like LIKE

                            Kommentar


                            • #15
                              Das is hier besser als Fernsehen
                              Beantworte nie Threads mit mehr als 15 followups...
                              Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                              Kommentar

                              Lädt...
                              X