[MySQL 4.1] Datum und Zeit bei neuem Datensatz hinzufügen

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

  • [MySQL 4.1] Datum und Zeit bei neuem Datensatz hinzufügen

    [COLOR=blue]Werte MySQL / PHP Gemeinde -- Neueinsteiger benötigt Eure Hilfe[/COLOR]

    Beschäftige mich seid August 2005 mit MySQL Datenbanken.
    Bisher lief nach Ansicht eines Anfängers alles fantastisch - anlegen von Tabellen, deren Normalisierung,- kreieren entsprechender Formulare für das einfügen, aktualisieren, selektieren und löschen von Daten in der DB.

    Vor ca. 14 Tagen kam ich auf die glorreiche Idee das es doch durchaus sinnvoll wäre, dass beim neuanlegen eines Kunden das aktuelle Datum sowie die Zeit in der DB eingetragen wird.

    (Seid dieser Idee bin ich Suicide-gefährdet)

    Mein Ziel war, das beim Klicken auf dem Sende-Button die ausgefüllten Kunden-forumlarfelder in die DB geschrieben werden und gleichzeitig bei dieser INSERT Anweisung das aktuelle Datum und die Zeit des DB-Servers bei diesem Kunden notiert werden.

    [COLOR=blue]Der einfachheit halber möchte ich mein Problem an einem einfachen Beispiel demonstriern.[/COLOR]

    ===============================================================
    Meine Tabelle in der DB:

    [COLOR=red]CREATE TABLE kunden
    (ku_nr INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
    vorname VARCHAR(15) NOT NULL,
    name VARCHAR(20) NOT NULL,
    angelegt_am datetime NOT NULL default '0000-00-00 00:00:00');[/COLOR]

    ===============================================================

    Mein Formular und der Quelltext (nur php Teil)


    [COLOR=blue]

    Da ich bei Dreamweaver keine Möglichkeit gefunden habe die Datums- und Zeitangabe im Formular versteckt mit unterzubrigen, habe ich mir mit eigenem Quellcode versucht zu helfen! Das was ich da hinzugefügt habe, ist ROT markiert.[/COLOR]



    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }

    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
    $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    [COLOR=red]$date_create = date("Y.m.d.H.i.s");[/COLOR]
    }

    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form_kunde")) {
    $insertSQL = sprintf("INSERT INTO kunden (vorname, name, [COLOR=red]angelegt_am[/COLOR]) VALUES (%s, %s, [COLOR=red]%s[/COLOR])",
    GetSQLValueString($_POST['vorname'], "text"),
    GetSQLValueString($_POST['name'], "text"),
    [COLOR=red]GetSQLValueString($date_create,"text"));[/COLOR]

    mysql_select_db($database_elchtest, $elchtest);
    $Result1 = mysql_query($insertSQL, $elchtest) or die(mysql_error());

    $insertGoTo = "index2.php";
    if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
    }
    header(sprintf("Location: %s", $insertGoTo));
    }
    ?>

    ===============================================================

    [COLOR=blue]Nach diesen Änderungen war meine Freude zuerst GROSS, den es hatte geklappt![/COLOR]



    Nach einfügen dieses Quell-Codes zeigt mir Dreamweaver bei "Serververhalten - Datensatz einfügen" ein rotes Ausrufezeichen.
    Wenn ich jetzt im Formular irgendwelche Änderungen mache und anschließend speichere, überschreibt Dreamweaver den gesamten Quellcode und meine Eintragungen sind weg.

    [COLOR=blue]Nun meine Fragen an Euch[/COLOR]

    1. Gibt es vieleicht doch Möglichkeiten mit Dreamweaver diese Proplem zu lösen?
    2. Wenn nicht, ist meine herangehensweise völlig falsch?
    3. oder gibt es für dieses Problem eine viel einfachere Methode?

    [COLOR=blue]Für einen Gadankenanstoß wäre ich Euch SEHR dankbar.[/COLOR]

    Grüße an alle: elch-black
    Hinfallen ist nicht schlimm!...... liegen bleiben unverzeihlich.

  • #2
    Welcome!

    Schön bunt!

    http://www.php-resource.de/forum/sho...threadid=47906

    Aber schön, dass du so ausführlich beschrieben hast. Da bleiben mir keine weiteren Fragen.

    Mein Fazit: DW ist SCHEI*E!!!

    Das wussten wir aber auch schon vorher...

    Deine Herangehensweise ist eigentlich richtig. (habe mir jetzt nur den roten teil angesehen.)

    Anstatt das datum (was für ein seltsames format benutzt du da???) manuell da reinzuschreiben, kannst du aber auch einfach der INSERT-Query ein

    datumsfeld = NOW()

    hinzufügen. Das hat den gleichen Effekt und spart die viel PHP-Krams.
    Zuletzt geändert von TobiaZ; 12.10.2005, 18:08.

    Kommentar


    • #3
      SQL erwartet ein ISO-Datum ... aber warum verwendest Du nicht einfach die SQL-Funktion NOW() ... ??
      Code:
      INSERT INTO kunden (vorname, name, angelegt_am) VALUES (%s, %s, NOW())
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        OffTopic:

        Sorry für diese Offtopic antwort.
        Bis auf die fehlenden PHP Tags habe ich bisher noch nie eine saubere Fragestellung gesehen.
        Das musste ich einfach mal loswerden



        Leider kann ich dir dazu nur eins sagen..

        Zu 1 + 2) Dreamweaver wirst du EIGENREGIE nicht beibringen..
        Dein ansatz ist völlig richtig aber das solltest du Macromedia erzählen. Da könnte man dir da etwas zu sagen..

        3) Lass Dreamweaver in sachen PHP einfach komplett aussen vor und mach lieber alles selbst. Dieses programm mag für Designzwecke geeignet sein aber für´s PHP Scripting völliger quatsch.

        Bau dir aus ein paar Tut´s oder nach eigenem ermessen ein paar MySQL funktionen wie connect oder query zusammen und vergiss DW ganz schnell...
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          *Denkanstoß*

          PHP-Code:
          Datum NOW() 
          Ach Hacke.. wieder waren alle schneller..

          Kommentar


          • #6
            Dein ansatz ist völlig richtig
            Das lasse ich jetzt nur eingeschränkt gelten

            Kommentar


            • #7
              Bin Sprachlos!!!

              Habe zum ersten Mal überhaupt ein Form benutzt und bin über die
              Schnelligkeit Eurer Antworten einfach platt!

              Danke an TobiaZ, goth, hhcm und Zine persönlich und der Crew die das hier am laufen hält.

              Bis bald und nochmals Danke!

              elch-black
              Hinfallen ist nicht schlimm!...... liegen bleiben unverzeihlich.

              Kommentar


              • #8
                Danke an TobiaZ, goth, hhcm und Zine persönlich und der Crew die das hier am laufen hält.
                Doppeltgemoppelt hält besser!

                Kommentar

                Lädt...
                X