Geburtstag als DATE speichern

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

  • Geburtstag als DATE speichern

    Wie kann ich den Geburtstag in der MYSQL Datenbank speichern.

    Also in der Datenbank habe ich als Datenfeldtyp beim Feld birthday (DATE) gewählt. Wie es mit UNIX Timestamp geht weiß ich und hatte ich schon, aber da ist der Zeitraum zu sehr begrenzt für meinen Geschmack.
    Also wäre DATE besser.

    Naja nur irgendwie speichert er es mir noch nicht richtig in diese Variable und sehe momentan nicht den Fehler.

    Ich habe es so

    $day=$_POST["day"];
    $month=$_POST["month"];
    $year=$_POST["year"];

    und dazu sind day und month Dropdownlisten und year ist ein Eingabefeld.

    tja ok ab da denke ich mache ich was falsch weil er es eben nicht einträgt.

  • #2
    date wird intern vom php-client wie ein string behandelt..

    die richtige schreibweise ist YYYY-MM-DD

    greetz, high
    Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
    When everything else fails, manipulate the data...
    Beschriftungen / Großformatdruck / Werbemittel

    Kommentar


    • #3
      Re: Geburtstag als DATE speichern

      Ich habe es so

      $day=$_POST["day"];
      $month=$_POST["month"];
      $year=$_POST["year"];

      und dazu sind day und month Dropdownlisten und year ist ein Eingabefeld.

      tja ok ab da denke ich mache ich was falsch weil er es eben nicht einträgt. [/B]
      Was trägt er denn nicht ein, wie setzt du die variablen zusammen und wie sieht dein sql query aus?

      Kommentar


      • #4
        PHP-Code:

        $day=$_POST["day"];
        $month=$_POST["month"];
        $year=$_POST["year"];
        $sel="selected=\"selected\""; 

        $1day = date(d,$details->birthday);
        $1month = date(m,$details->birthday); 
        $1year = date(Y,$details->birthday); } ?>

        <form method="post" action="?show=profile">

        </td></tr><tr><td>Geburtstag <strong>*</strong></td><td>
        <select name="day" class="form">
        <option value="" <?php if(empty($1day)) { echo $sel; } ?>>----</option>
        <?php $2day=1;
        while($
        2day<32) {
        if($
        1day=="$2day") { print "<option value=\"$2day\" $sel>$2day</option>"; }
        else { print 
        "<option value=\"$2day\">$2day</option>"; } $2day++; } ?>
        </select> 
        <select name="month" class="form">
        <option value="" <?php if(empty($1month)) { echo $sel; } ?>>----</option>
        <?php $2month=1;
        while($
        2month<13) {
        if($
        1month=="$2month") { print "<option value=\"$2month\" $sel>$2month</option>"; }
        else { print 
        "<option value=\"$2month\">$2month</option>"; } $2month++; } ?>
        </select>
        <input type="text" name="year" value="<?php echo $details->2year?>" />

        <input type="submit" class="form" value="Editieren" />


        $update = "UPDATE users SET nick='$nick', birthday='$birthday', email='$email', WHERE id='$userid'";
        $sqlaction = mysql_query($update);
        print "Profilangaben <strong>erfolgreich</strong> editiert.. [ <a href=\"?show=uprofile\">weiter</a> ]"; } 
        else { echo $msg; } ?>
        </td></tr></table>

        Ist nur ein Teil von der Datei, das Updaten in der SQL funktioniert eigentlich bei allen feldern, bis auf beim geburtstag.
        Das mit dem zusammentun ist glaube ich das Problem, weil ich da nicht sicher bin wie man das richtig schreibt, bei unixtimestamp gehts so
        $birthday=mktime(2,0,0,$month,$day,$year);

        nur wie macht man das bei DATE???
        hab noch nie damit was gemacht, also kann sein das es für euch einfach ist aber hab halt auch nix dazu in google gefunden, somit keine ahnung, alles was ich bisher experimentierte diesbezüglich hat nicht wirklich geklappt

        Kommentar


        • #5
          $update = "UPDATE users SET nick='$nick', birthday='$birthday', email='$email', WHERE id='$userid'";

          $birtday hast du aber nirgendwo definiert. Was erwartest du also. Wenn mysql raten soll, musst du das auch entsprechend kenntlich machen. Aber gerade bei Damen kann das in die Hose gehen.

          Dass DATE format (YYYY-MM-DD) ist dir bekannt. Also setzt du jetzt einfach einen String in o.g. Format zusammen und gut ist.

          Scheiterst du schon am verketten von variablen, oder was ist dein Problem?

          Kommentar


          • #6
            Du musst das $birthday bei $update ja auch irgendwo definieren. Das müsste dann ca so aussehen:

            $birthday = $year."-".$month."-".$day

            Und wieso print und nicht echo?

            Kommentar


            • #7
              danke euch für die hilfe

              jo das mit dem verketten hat gefehlt, weiß auch nicht warum ich das nöd gleich bemerkte bzw nicht dran dachte das es ja eigentlich eh eo einfach geht, aber funktioniert nun einwandfrei so wie es soll

              also mega großes danke (auch wenns ja eigentlich eh was sehr einfaches war bzw ein dummer fehler)

              Kommentar


              • #8
                Also wieder mal ein Fehler, auf den ordentliches error_reporting sofort hingewiesen hätte - verdammt, wieso nutzt du das nicht?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar

                Lädt...
                X