Formulardaten in MySQL Datenbank eintragen?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
nils754
Mitglied
Beiträge: 283
Registriert: 25.02.2005 22:46

Formulardaten in MySQL Datenbank eintragen?

Beitrag von nils754 »

Hi,

kann mir jemand kurz erklären wie ich Daten von einem Formular in meiner SQL Tabelle speichern kann.
Über Phpmyadmin funktioniert das ja so:

Code: Alles auswählen

INSERT INTO abc (id, Vorname, Name, Adresse, Ort) VALUES ('', 'Peter', 'Mustermann', 'Das ist geheim', 'Musterstadt')
Nur wie kann ich diese Daten, wenn ich sie von dem Formular bekomme, in die Datenbanktabelle eintragen. Oder mit welcher Funktion geht das?
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Ersetze die Daten die du einfügen willst durch Variablen die du von dem Formular bekommst
Benutzeravatar
nils754
Mitglied
Beiträge: 283
Registriert: 25.02.2005 22:46

Beitrag von nils754 »

Meinst du das so?

Code: Alles auswählen

@mysql_connect("localhost","root","");
@mysql_select_db("page");

INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]')

mysql_close();
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Ja so meinte ich es.

Klappt?
Benutzeravatar
nils754
Mitglied
Beiträge: 283
Registriert: 25.02.2005 22:46

Beitrag von nils754 »

Nein, es kommt eine solche Fehlermeldung:

Code: Alles auswählen

Parse error: syntax error, unexpected T_STRING in C:\apache\xampp\htdocs\test\includes\mail.php on line 37
Suche Hilfe
Mitglied
Beiträge: 105
Registriert: 29.12.2004 21:35

Beitrag von Suche Hilfe »

Was steht in Line 37? Schick ma den Script von zeile 35 - 39
mristau2k5
Mitglied
Beiträge: 140
Registriert: 10.05.2005 02:35
Wohnort: Filderstadt

Beitrag von mristau2k5 »

nils754 hat geschrieben:

Code: Alles auswählen

@mysql_connect("localhost","root","");
@mysql_select_db("page");

INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]')

mysql_close();
Also wenn das so genau in deinem Skript steht, gibts natürlich nen Fehler, das müsste z.B. so aussehen:

Code: Alles auswählen

@mysql_connect("localhost","root","");
@mysql_select_db("page");

$sql = "INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ('', '".$_POST[name]."', '".$_POST[email]."', '".$datum."', '192.168.135.154', '".$_POST[nachricht]."')";

@mysql_query($sql, $verbindung);

mysql_close();
Das Problem liegt darin, dass das INSERT eine SQL-Anweisung ist, die von PHP nicht direkt ausgeführt wird, sondern mit dem Befehl mysql_query().

Die Fehlermeldung
nils754 hat geschrieben:

Code: Alles auswählen

Parse error: syntax error, unexpected T_STRING in C:\apache\xampp\htdocs\test\includes\mail.php on line 37
besagt nur, dass in Zeile 37 im PHP-Skript ein String gefunden wurde, nämlich in dem INSERT die mit ' eingeschlossenen Zeichen
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

wenn ich helfen darf:

Code: Alles auswählen

@mysql_connect("localhost","root",""); 
@mysql_select_db("page"); 

INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ('', '$_POST[name]', '$_POST[email]', '$datum', '192.168.135.154', '$_POST[nachricht]') 

mysql_close();
ist nicht korrekt

es muss so heißen:

Code: Alles auswählen

@mysql_connect("localhost","root",""); 
@mysql_select_db("page"); 

INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ("", "$_POST['name']", "$_POST['email]", '$datum', '192.168.135.154', "$_POST['nachricht']") 

mysql_close();
das Problem sind die (bei dir nicht verwendeten) Anführungszeichen innerhalb der $_POST[]
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Benutzeravatar
nils754
Mitglied
Beiträge: 283
Registriert: 25.02.2005 22:46

Beitrag von nils754 »

mristau2k5 hat geschrieben:

Code: Alles auswählen

@mysql_connect("localhost","root","");
@mysql_select_db("page");

$sql = "INSERT INTO mail_log (id, name, absender, datum, ip, nachricht) 
VALUES ('', '".$_POST[name]."', '".$_POST[email]."', '".$datum."', '192.168.135.154', '".$_POST[nachricht]."')";

@mysql_query($sql, $verbindung);

mysql_close();
Danke für die Hilfe!
Jetzt habe ich aber noch ein Problem. Es wird nichts in die DB eingetragen.
Für was steht denn die Variable $verbindung?

edit:
Das ist die Fehlermeldung:

Code: Alles auswählen

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\apache\xampp\htdocs\test\includes\mail.php on line 40
Benutzeravatar
StarWolf3000
Mitglied
Beiträge: 1019
Registriert: 25.07.2005 10:20
Wohnort: Stolpen
Kontaktdaten:

Beitrag von StarWolf3000 »

Code: Alles auswählen

$verbindung = mysql_connect("localhost","root","");
statt:

Code: Alles auswählen

@mysql_connect("localhost","root","");
MOD-Einbauhilfe und Installationen über ICQ, TeamSpeak 2/3 und TeamViewer. Support nur im Forum, eingeschränkt per TeamViewer, aber nicht mehr per PN! • KB:knigge
Antworten

Zurück zu „Coding & Technik“