Datum in DB schreiben ( update )

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

  • Datum in DB schreiben ( update )

    Hallo Profies,

    vorne weg ich habe leider keine Lösung im Forum gefunden :-)

    Ich habe ein Eingabefeld in Form von :
    PHP-Code:
    ...
    <tr> 
     <td align="right"><?php echo $strLizenzende;?> </td>
       <td align="left"> 
         <input class="myInput" type="text" name="N_lizenz_end" value="<?php echo $lizenz_end?>" />
      </td>
    </tr>
    ...
    ( wobei hier N_lizenz_end ein Datum im Format xx.xx.xxxx ist und möchte nun eine DB-Tabelle mit dieser Funktion updaten :
    PHP-Code:
    ...
    $sql "UPDATE ".PPHL_TBL_USERS." SET lizenz_end = '".$N_lizenz_end."', email = '".$N_email."', visible = ".$N_visible.", "
         
    "timeout = '".$N_timeout."', timeout_onl = '".$N_timeout_onl."', "
         
    "hit_mail = '".$N_hit_mail."', loglim = '".$N_loglim."', stats_cache = ".$N_stats_cache.", your_url = '".$N_your_url."', "
         
    "demo = ".$N_demo.", ttf_file = '".$N_ttf_file."', gd_font = '".$N_gd_font."', ttf_size = '".$N_ttf_size."', "
         
    "bg_c = '".$N_bg_c."', fg_c = '".$N_fg_c."', bg_trans = ".$N_bg_trans.", cssid = ".$N_css.", gmt = '".$N_gmt."', "
         
    "lang = '".$N_lang."', limh = '".$N_limh."', limh_p = '".$N_limh_p."', limd = '".$N_limd."', limd_p = '".$N_limd_p."', hits = '".$N_hits."', kwspl = ".$N_kwspl." "
         
    "WHERE id = ".$id;
    ... 
    Aber irgendwie funzt es nicht, in weit muss ich
    PHP-Code:
    lizenz_end '".$N_lizenz_end."' 
    ändern um es später mit
    PHP-Code:
    $lizenz_end=strftime("%d.%m.%Y",$lizenz_end); 
    wieder auslesen zu können.

    Danke und Gruss Alf

  • #2
    Erstmal wäre es hilfreich zu wissen, von welchem Typ dein Feld lizenz_end ist.
    TIMESTAMP, DATE, VARCHAR... ?
    if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

    Kommentar


    • #3
      Ohhh, habe ich doch tatsächlich vergessen - SORRY :-)

      Ich habe -> VARCHAR <- genommen, ich glaube -> DATE <- ist besser
      jedoch habe ich es nicht hinbekommen das Feld mit einem
      Platzhalter zu füllen, wenn kein Wert angegeben ist.

      Ich glaube mit -> DATE <- kann ich das eingegebene Datum
      direkt übernehmen - so habe ich es aus der Anleitung raus gelesen.

      Oder ???

      Gruss und Danke Alf

      Kommentar


      • #4
        Wenn du mit einem Datum arbeitest solltest du auch besser ein Datums-Feld nehmen. Entweder TIMESTAMP oder DATE.
        So ein Datum kannst du direkt in der Query formatieren.

        Dein Vorhaben, das Datum mit strftime() zu formatieren, wird eh nicht funktionieren, da strftime() einen Unix-Timestamp verlangt.

        Ich würde an deiner Stelle mit DATE arbeiten.
        if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

        Kommentar


        • #5
          **PEINLICHSCHAUEND**

          Zufällig ein Beispiel, da ich in der Anleitung zu DATE nicht viel heraus finden kann und es das erste mal ist, dass ich in die DB schreibe **GRINS**

          Danke für die Mühe

          Alf

          Kommentar


          • #6
            dein datum im format dd.mm.jjjj solltest Du mit explode erstmal zerlegen, dann mit checkdate() prüfen und dann mit einer stringverkettung ins format jjjj-mm-dd bringen dann kannste das auch eintragen.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Ok. Danke werde mal versuchen mich dran zu machen
              muss ich wohl erst mal Bücher welzen **grins**

              Gruss Alf

              Kommentar


              • #8
                Mhhh, geht das nicht einfacher - bekomme es nicht hin.
                Ich möchte nur ein Dateum ( trage ich selber ein ) in die DB
                speichern und wieder auslesen und anzeigen, wird nicht
                mit gearbeitet.

                Gruss und Danke Alf

                Kommentar


                • #9
                  KANN MIR DEN NIEMAND HELFEN, ICH BIN DOCH EIN NEULING .
                  FÜR DIE ES WISSEN IST ES LOGISCH, WENN MAN ANLEITUNGEN LIESST, FÜR ANDERE IST ES NICHT LOGISCH.

                  GRUSS ALF

                  Kommentar


                  • #10
                    SCHREI HIER NICHT SO RUM!
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Îch schrei ja nicht, oder hört hier jemand einen Schrei **grins**
                      also gut dann nehme ich das einfach so hin !

                      Grus und trotzdem danke für die Bemühungen !

                      Gruss Alf

                      Kommentar


                      • #12
                        Lies dir mal Datums- und Zeitfunktionen durch. Da wird alles haarklein erklärt.
                        Und soooo kompliziert ist das auch nicht!
                        if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

                        Kommentar


                        • #13
                          Danke für den Tipp, das lesen ist auch kein Problem
                          das kann ich, nur das Schreiben in die DB bereitet mir
                          die Probleme mit dem Zerlegen der Eingabe und dann
                          das Schreiben in die DB.

                          Gruss und Danke Alf

                          Kommentar


                          • #14
                            Ich habe es mal jetzt so probiert :
                            PHP-Code:
                            $lizenz_end explode(".",$N_lizenz_end);
                            $day     $DATE[0]; 
                            $month   $DATE[1]; 
                            $year   $DATE[2];
                            $lizenz_end "$year$month$day";

                            $sql "UPDATE ".PPHL_TBL_USERS." SET lizenz_end = '".$lizenz_end."' "
                                     
                            "WHERE id = ".$id;
                            $res mysql_query($sql); 
                            jedoch wird da immer die Zahl NULL übertragen

                            Eingabe :
                            PHP-Code:
                            <tr> 
                             <td align="right"><?php echo $strLizenzende;?> </td>
                             <td align="left"> 
                             <input class="myInput" type="text" name="N_lizenz_end" value="<?php echo $lizenz_end?>" />
                             </td>
                            </tr>
                            Gruss und danke Alf

                            Kommentar


                            • #15
                              Du musst das Datum auch richtig zusammensetzen.
                              Woher kommt denn das $DATE?
                              Versuch's mal so:
                              PHP-Code:
                              $lizenz_end explode(".",$N_lizenz_end);
                              $day     $lizenz_end[0]; 
                              $month   $lizenz_end[1]; 
                              $year   $lizenz_end[2];
                              $date $year "-" $month "-" $day;
                              // oder kürzer:
                              $date $lizenz_end[2] . "-" $lizenz_end[1] . "-" $lizenz_end[0];


                              $sql "UPDATE ".PPHL_TBL_USERS." SET lizenz_end='" $date "' WHERE id=" $id "";
                              $res mysql_query($sql); 
                              Zuletzt geändert von mrwhorf; 04.12.2003, 15:47.
                              if ($getraenk=="kein kaffee mehr da" && $verlangen=="gross") { $arbeitsmoral="im keller"; }

                              Kommentar

                              Lädt...
                              X