Ankündigung

Einklappen
Keine Ankündigung bisher.

Datum von Inputfeld in mySQL speichern

Einklappen

Neue Werbung 2019

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

  • Datum von Inputfeld in mySQL speichern

    hallo leute,

    ich bin neu hier, also erstmal "Hallo"

    habe folgendes problem und komme einfach nicht weiter :/.
    ich möchte in ein inputfeld ein datum eintragen, meinetwegen auch erstmal in englisher form also dd-mm-yyyy.
    mit folgendem code habe ich das inputfeld geschrieben:

    PHP-Code:
    ...
        
    $day "";
        for(
    $i=1$i<32$i++) {
                if(
    $i==date("d"time())) $day.='<option selected="selected">'.$i.'</option>';
                else 
    $day.='<option>'.$i.'</option>';
            }
            
    $month "";
        for(
    $i=1$i<13$i++) {
                if(
    $i==date("n"time())) $month.='<option value="'.$i.'" selected="selected">'.date("M"time()).'</option>';
                else 
    $month.='<option value="'.$i.'">'.date("M"mktime(0,0,0,$i,1,2000)).'</option>';
            }
            
    $year "";
        for(
    $i=2012$i<2022$i++) {
                if(
    $i==date("Y"time())) $year.='<option value="'.$i.'" selected="selected">'.date("Y"time()).'</option>';
                else 
    $year.='<option value="'.$i.'">'.$i.'</option>';
            }
    ...

    echo 
    '<select name="day">'.$day.'</select>';
    echo 
    '<select name="month">'.$month.'</select>';
    echo 
    '<select name="year">'.$year.'</select> Datum des Pokerabends (Format: JJJJ-MM-TT)<br />'
    wenn ich dies nun mit diesem code verarbeite:

    PHP-Code:
    ...
    $month $_REQUEST['month'];
    $day $_REQUEST['day'];
    $year $_REQUEST['year'];
    ...
    $date=mktime(0,0,0,$month,$day,$year);
    mysql_query("INSERT INTO spieltagdetails (idspieltag, einsatz, spieldauer, datum) VALUES ('".$idspieltag."', '".$einsatz."', '".$spieldauer."', '".$date."')");
    ... 
    kommt bei mir als beispiel folgendes raus:
    idspieltag einsatz spieldauer datum
    1 3 450 1352502000

    woran kann das liegen? was mache ich falsch?


    liebe grüße
    sandro

  • #2
    Also erstmal sehe ich kein Input-Feld, sondern drei Select-Boxen.
    Und dann weiß ich nicht genau, was an Deinem Beispiel das Problem ist. Die Ausgabe passt zur Eingabe.

    Was ich mich aber frage: Warum trägst Du das Datum als Unix-Timestamp ein? mktime()
    Das ist doch total unübersichtlich in der Datenbank.

    Kommentar


    • #3
      Zitat von Pompei81 Beitrag anzeigen
      Also erstmal sehe ich kein Input-Feld, sondern drei Select-Boxen.
      Und dann weiß ich nicht genau, was an Deinem Beispiel das Problem ist. Die Ausgabe passt zur Eingabe.

      Was ich mich aber frage: Warum trägst Du das Datum als Unix-Timestamp ein? mktime()
      Das ist doch total unübersichtlich in der Datenbank.
      oh natürlich meinte ich meine selectboxen...komm ganz durcheinander

      das problem welches ich als problem ansehe ist, das er das datum so " 1352502000" abspeichert...entweder habe ich das ganze datum-mysql-thema falsch verstanden oder keine ahnung

      Kommentar


      • #4
        Du speicherst das Datum auch als Timestamp ab. (mktime() wandelt ein Datum in einen Timestamp um)

        Einfach nicht umwandeln, sondern gleich im Datumsformat lassen.

        Lg Dicker Hobbit

        Kommentar


        • #5
          http://de.php.net/manual/de/function.mktime.php

          Kommentar


          • #6
            und wie sieht dann das "gleich im Datumsformat lassen" bzw. speichern aus?
            bin in diesem gebiet richtiger anfänger :/

            Kommentar


            • #7
              In MySQL gibt es einen Spalten-Typen namens "date". Der erwartet Eingaben im Format YYYY-MM-DD. So musst Du dann auch die Eingabe in die Datenbank zusammenfügen.

              Kommentar


              • #8
                vielen dank, das speichern klappt nun mit:
                PHP-Code:
                $date=date($year."-".$month."-".$day); 
                jetzt frag ich mich wie ich das datum in das deutsche format: dd-mm-yyyy formatieren und ausgeben kann!?

                ich habe diese
                PHP-Code:
                echo "<td width='20'>".$spdetails['datum']."</td>"
                ausgabe bisher. hat jemand einen tipp? bzw. eine vorgehensweise?

                Kommentar


                • #9
                  Mit DATE_FORMAT() in der Abfrage.

                  SELECT DATE_FORMAT( datum, '%d. %M %Y' ) AS datum FROM spieltagdetails

                  Kommentar


                  • #10
                    Zitat von coolicious Beitrag anzeigen
                    vielen dank, das speichern klappt nun mit:
                    PHP-Code:
                    $date=date($year."-".$month."-".$day); 
                    Das wirft zwar keine Fehlermeldung, aber es ist trotzdem falsch. Bevor Du Funktionen nutzt, solltest Du Dir im PHP-Manual durchlesen, was diese Funktionen bewirken: http://de.php.net/manual/de/function.date.php
                    Da gibt es rechts oben ein Suchfeld mit dem Du Funktionen suchen kannst.

                    Ich sprach vom "date" Spaltentyp von MySQL und nicht von der PHP-Funktion "date()".
                    Vorausgesetzt Dein Spaltentyp für das Datum steht auf "date", dann ist Folgendes korrekt:
                    PHP-Code:
                    $date=$year."-".$month."-".$day
                    Aber achte darauf, dass Tage und Monate führende Nullen enthalten.
                    Tue Dir mal einen Gefallen und arbeite ein paar Tutorials durch, dann wird schon vieles klarer.

                    Kommentar


                    • #11
                      ich danke euch beiden
                      ich werde mir die sachen mal durchlesen.

                      gute nacht euch

                      Kommentar

                      Lädt...
                      X