[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
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
Kommentar