Formulardaten in eine MySQL-Datenbank speichern

In diesem Artikel wird beispielhaft erklärt, wie Formulardaten in eine MySQL-Datenbank gespeichert werden können. Zu beachten ist, dass nur das Formular, welches in die Datenbank gespeichert werden soll, über das angepasste Formmail-Script verschickt werden sollte.

Das gesamte Beispiel-Script gibt es am Ende zum Download. Es muss also nichts abgetippt werden. :-)

Im ersten Schritt legen wir das Formular im DA-FormMaker an:

image

In PHPMyAdmin legen wir nun die Tabelle an, in welcher das Formular gespeichert werden soll. PHPMyAdmin ist in der Regel vom Webspaceanbieter vorinstalliert. Wenn das nicht der Fall ist, kann man es auch selbst installieren.

Jetzt geben wir den Tabellennamen ein und die Anzahl der Felder. Wir haben 3 Formularfelder, ein weiteres Feld brauchen wir für die Primärschlüssel:

image

Nun legen wir die Datenbankfelder an. Das erste Feld wird der Primärschlüssel. Dieser identifiziert einen Datensatz eindeutig. Die ID ist vom Typ „INT“. Für alle anderen Felder bietet sich „VARCHAR“ (eine Zeichenkette) an. Länge legen wir in diesem Fall mit 100 fest.

image

Der Primärschlüssel erfordert noch weitere Einstellungen. Zuerst sagen wir MySQL, dass es ein Primärschlüssel ist und dann legen wir noch „A_I“ fest. Dies steht für Auto_Increment und sorgt dafür, dass bei jedem neuen Datensatz automatisch eine fortlaufende Nummer vergeben wird.

Mit einem Klick auf Speichern ist die Tabelle angelegt:

image

Anschließend muss das Formmail-Script angepasst werden. Legen Sie zuerst eine neue Datei im Scriptverzeichnis an:

In unserem Fall hat diese folgenden Inhalt:

<?php
/*
* Andy Dunkel
* Erweiterungsmodul für das Formmail-Script zur Speicherung der Daten
*
* uses dbclass.php
*/

$db = new dbaccess();

//Felder aus dem Formular auslesen
if (isset($_POST["Vorname"]))         
    $form_vorname = $db->EscapeString($_POST["Vorname"]); 
else $form_vorname = "";

if (isset($_POST["Name"])) 
    $form_name = $db->EscapeString($_POST["Name"]); 
else $form_nachname = "";

if (isset($_POST["email"])) 
    $form_email = $db->EscapeString($_POST["email"]);
else $form_email = "";

//Erklärung:
//Vorname = Name des Feldes im Formular


//SQL-Befehl erstellen - formulardaten = Tabellenname aus MySQL    
$sql = "INSERT INTO formulardaten (Vorname, Name, email)";
$sql .= " VALUES ('" . $form_vorname . "','" . $form_name . "','" . $form_email;
$sql .= "')";        

$db->ExecuteSQL($sql);            
?>

Für jedes Formularfeld benötigen wir folgenden Codeblock:

if (isset($_POST["Vorname"]))         
    $form_vorname = $db->EscapeString($_POST["Vorname"]); 
else $form_vorname = "";

"Vorname" ist der Feldname aus DA-FormMaker. Achten Sie hier auch auf Groß- und Kleinschreibung.

Am Ende wird der SQL-Befehl erstellt, der den Datensatz in die Datenbank schreibt:

$sql = "INSERT INTO formulardaten (Vorname, Name, email)";
$sql .= " VALUES ('" . $form_vorname . "','" . $form_name . "','" . $form_email;
$sql .= "')";

„formulardaten“ ist der Tabellenname den wir oben bei der Einrichtung der MySQL-Datenbank angegeben haben. „Vorname“, „Name“, „email“ die Felder. Weitere Felder können analog hinzugefügt werden.

Die Datei „save_to_db.php“ muss nun noch in das Hauptscript eingebunden werden. Öffnen Sie dazu die „formmail.php“ mit einem Texteditor und binden Sie die Datei mit dem Befehl „include“ an folgende Stelle ein:

image

Sofern noch nicht erledigt müssen die MySQL-Zugangsdaten noch in der „config.php“ eingetragen werden:

image

Nachdem nun alles programmiert und eingerichtet wurde, kann das Formular getestet werden:

image

In PHPMyAdmin kann nun überprüft werden, ob die Daten gespeichert wurden. Dazu auf „Anzeigen“ klicken. Die Daten sollten anschließend zu sehen sein. Sind keine Daten vorhanden, ist es möglich, dass der SQL-Befehl nicht richtig ist. Prüfen Sie ob die Feldnamen, Tabellenname etc. in Ordnung sind. Hier kommt es schnell zu Tippfehlern. Es kommt meist auch keine Fehlermeldung, wenn der SQL-Befehl nicht in Ordnung ist.

image

Download des Beispiels

Download


Datenschutzerklärung | Impressum