PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Datensätze hinzufügen?


Eric
20.11.2005, 14:34:39
Hi

Wie füge ich Datensätze in eine MYSQL Datenbank per Formular ein? Wie z.b. hier wenn ich ein neues Thema erstelle?

xabbuh
20.11.2005, 14:35:37
Woran scheitert dein Problem? Daran das Formular zu definieren, es mit PHP zu verarbeiten oder die Daten einzutragen?

Eric
20.11.2005, 14:39:06
Hi

Die Php verarbeitung und das hinzufügen grieg ich nicht hin!

Opendix
20.11.2005, 14:41:16
schau dir ma diese tutorial an... wird dir weiterhelfen ;)

http://tut.php-q.net/

edit: hier noch ein guter link:
http://www.webmaster-resource.de/tutorials/php/php_tutorial_25.php

Eric
20.11.2005, 14:51:39
Hi

Jetzt kommt das da:

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in C:\Dokumente und Einstellungen\Eric\Eigene Dateien\xampp\htdocs\test\db\einfuegen.php on line 2

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\Dokumente und Einstellungen\Eric\Eigene Dateien\xampp\htdocs\test\db\einfuegen.php on line 3

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Dokumente und Einstellungen\Eric\Eigene Dateien\xampp\htdocs\test\db\einfuegen.php on line 9

Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\Dokumente und Einstellungen\Eric\Eigene Dateien\xampp\htdocs\test\db\einfuegen.php on line 10

xabbuh
20.11.2005, 14:53:20
Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in C:\Dokumente und Einstellungen\Eric\Eigene Dateien\xampp\htdocs\test\db\einfuegen.php on line 2
Die Fehlermeldung ist doch eindeutig: Du versuchst mit den falschen Zugangsdaten auf den MySQL-Server zu verbinden.

Eric
20.11.2005, 14:57:51
jetzt kommt nur noch:

Beim Eintragen ist ein Fehler aufgetreten.

Hier mal die Dateien (nicht wundern, es gibt kein Passwort!):

<?php
define('MYSQL_HOST', '127.0.0.1');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', '');
define('MYSQL_DATABASE', 'test');
$db=mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
mysql_select_db("daten", $db);
mysql_query("
INSERT INTO gaestebuch
(datum, name, titel, eintrag)
VALUES
(NOW(''), '$name', '$titel', '$eintrag')
", $db);
if(mysql_affected_rows($db)==1)
echo "Vielen Dank f&uuml;r Ihren Eintrag!<br>",
"<a href=\"gaestebuch.php3\">Zur&uuml;ck</a>";
else
echo "Beim Eintragen ist ein Fehler aufgetreten.<br>",
"<a href=\"javascript:history.back();\">Zur&uuml;ck</a>";
?>

xabbuh
20.11.2005, 15:04:00
Das liegt daran, dass deine Abfrage nicht korrekt ausgeführt werden konnte. Den aufgetretenen Fehler kannst du mit mysql_error() ermitteln.

Eric
20.11.2005, 15:10:27
ok, da kommt dann Query was empty

xabbuh
20.11.2005, 15:13:25
Dann verwendest du mysql_error() an der falschen Stelle im Quellcode.

Eric
20.11.2005, 15:17:53
und wo gehört die hin?

Opendix
20.11.2005, 15:25:08
nach mysql_query(...)

feuervogel
20.11.2005, 23:06:44
einfach mal gucken vorm posten:

http://www.selfphp.de/forum/showthread.php?t=8195

da steht auch was zu mysql_error()

Ryxo
02.12.2005, 13:30:29
Ich habe da ein anderes Problem wie es aussieht kommen die Werte aus dem Formular nicht in die Variablen gespeichert.

gibt es eine möglichkeit die werte in variablen zu speichern??

http://www.webmaster-resource.de/tutorials/php/php_tutorial_25.php

habs so gemacht wie im tutorial

xabbuh
02.12.2005, 13:33:24
Du gehst in deinem Quelltext anscheinend davon aus, dass register_globals aktiviert sind und Werte die von Außen (POST, GET etc.) an das Script herangereicht werden auch direkt als Variablen im Script vorhanden sind. Da register_globals allerdings deaktiviert ist, musst du auf das entsprechende superglobale Array (http://www.php.net/manual/en/language.variables.predefined.php) zugreifen.

feuervogel
02.12.2005, 13:35:31
man sollte die leute strafen heutzutage noch solch ein tutorial online zu stellen...steht ja sogar noch .php3 als dateiendung da.

wenn das feld so aussieht:

<input type="text" name="titel" maxlength="40">

und die formularmethode so:

method="post"

nimmst du statt $titel das: $_POST[ 'titel' ]

und falls die method="get" ist, halt $_GET[ 'titel' ]

Ryxo
02.12.2005, 16:49:51
also dann in meinem fall den $_POST?

bsp: $name = $_POST['name'] ;

oder welcher befehl ist es?

feuervogel
03.12.2005, 19:30:55
also dann in meinem fall den $_POST?

bsp: $name = $_POST['name'] ;

oder welcher befehl ist es?

genau so.