andynail: mit mysql das erstellte Datum in die Datenbank einfügen

Hallo zusammen

auf meinem Formular soll man ein Datum eingeben und dieses soll in der Datenbank in einem entsprechend formatiierten Feld eingefügt werden.

Und ich experementiere jetzt schon länger:
Ich fand die Zeilen

$timestamp = mktime(0, 0, 0, $Tag, $Monat, $Jahr);  
$Datum = date($timestamp);  

oder die sql Anweisung

mysql_query("INSERT INTO `Freizeit`.`kalender` set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");  

Doch aus allem wird nix.

Wäre toll wenn ich auf meiner Seite Feiertage und die Geburtstage meiner Familie verzeichnen könnte, und dies auch komfortabel mit Formularen verwalten könnte.

Und so freue ich mich auf eure Hilfe und bedanke mich im Vorraus.

Gruß Andreas

  1. Hi,

    $timestamp = mktime(0, 0, 0, $Tag, $Monat, $Jahr);

    Wo kommen diese Werte her?
    Wenn es ein Dropdown für jeden Wert (Tag, Monat, Jahr) ist, dann ist die Wahrscheinlichkeit recht hoch, dass die Werte so passen. Man sollte sie vielleicht noch überprüfen, ob es Zahlen sind.

    Aber wenn es z.B. aus einem Textfeld kommt und nach Tag monat Jahr aufgeteilt wurde dann sollte man auf jeden Fall so eine Überprüfung machen, weil man Daten ja in vielen Formaten eingeben kann.

    $Datum = date($timestamp);

    Was willst du damit erreichen? Hast du im PHP-Manual mal geschaut, wie date() funktioniert? Du musst einstellen, was es ausgeben soll. Wenn es das machen soll, was ich denke dass es soll (Tag.Monat.Jahr) dannn kannst du das auch einfacher haben, indem du gleich die Variablen von oben zusammenhängst. DA muss du nicht unnötig hin und her umformen.

    oder die sql Anweisung

    mysql_query("INSERT INTO Freizeit.kalender set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");

    
    >   
    
    Das sieht sehr merkwürdig aus. Kann sein, dass es klappt - aber ich vermute eher nicht. Schau dir doch mal an, wie man ein INSERT gestaltet und dann mache es auch einheitlich für jedes Feld.  
      
    ISt das Feld Datum ein MySQL Datumsfeld? Wenn nein: Mache ein Datumsfeld draus.  
    Wenn ja: Dann stimmt das Format deines Datums nicht. Mysql will YYYY-MM-DD haben.  
      
    
    > Doch aus allem wird nix.  
    >   
    
    Ganz toll wäre jetzt natürlich gewesen, wenn du die PHP und MySQL Fehlermeldungen (von denen es sicherlich welche gibt) hier mit reingepostet hättest.  
      
    Gruß  
    Alex
    
    1. Hallo

      ich hatte wie oben gesagt dies auf einer Seite gelesen. Und ansonsten funktionieren ja meine sql Anweisungen. Und wenn ich Datum ='$Jahr-$Monat-$Tag' eingebe steht nachher in der Datenbank auch wieder nur Nullen.

      Und ich möchte auf die vorrige Antwort hinweisen, denn ich glaube dort alles geschildert zu haben.

      Danke Gruß Andreas

      1. Hello,

        ich hatte wie oben gesagt dies auf einer Seite gelesen. Und ansonsten funktionieren ja meine sql Anweisungen. Und wenn ich Datum ='$Jahr-$Monat-$Tag' eingebe steht nachher in der Datenbank auch wieder nur Nullen.

        Du solltest Dir zum Testen das fertig ausgerechnete SQL-Statement anzeigen lassen. Da kommen dann manchmal die Überraschungen zutage.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Hello Andreas,

    mysql_query("INSERT INTO Freizeit.kalender set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");

    
    >   
    > Doch aus allem wird nix.  
      
    Was sagt die Datenbank selber dazu? Welcher Fehlercode und Fehlertext werden Dir zurückgeliefert, wenn Du versuchst, das obige Query ausführen zu lassen?  
      
    Welchen Typ hat die Spalte `Datum`?  
      
    Hast Du dir die Insert-Syntax schon mal im MySQL-Handbuch angesehen?  
    <http://dev.mysql.com/doc/refman/5.1/en/insert.html>  
      
    Könnte es sein, dass man "SET" und "VALUES" nicht mischen darf?  
    Könnte es sein, dass der Datumswert das falsche Format hat?  
      
       JJJJ-MM-TT  
      
    wäre ein Format, das MySQL für Spalten vom Typ Date akzeptiert...  
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. Hallo

      ich kann mir keine Fehlermeldung anzeigen lassen da das Formular gleich geschlossen wird. Ok in einer einfachen Datei zum testen hab ich es nicht getestet.

      Die Values Variante hatte ich irgendwo gelesen. Und ich möchte ja auch den Text hinzufügen und dafür brauche ich doch die Set Anweisung?

      Der Datum Wert hat das richtige Format. Ich gebe ihn selber ein und wie von dir gezeigt steht es auch in der Datenbank mit lauter Nullen.

      Gruß Andreas