 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.03.2008, 13:13
|
#1
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
Formuladaten mit PHP an MySQL übergeben?
Hi Leute! Ich bin in letzter Zeit sehr bemüht intensiv PHP und MySQL zu lernen und habe derzeit keinen Erfolg mein Programm zum laufen zu bringen. Nach ewiegen versuchen, recherchieren und probieren klappt es leider immer noch nicht. Deswegen bitte ich freundlichst um Eure Hilfe. Also ich habe einen localen WAMP auf meinem PC am laufen. Ich versuche mittels einem Formular Daten in meine MySQL Datenbank zu schreiben. Das ist mein aktuelles Problem. Habe sehr sehr viel Zeit verschwendet, doch nichts hat es genutzt.
Hier mein Script  Unschön weil eben nur zu Testzwecken)
PHP-Code:
<? $dbname="kunden"; $dbhost="localhost"; $dbuser="root"; $dbpass="MeinPasswort";
if ($button==" OK ") { $id = $_POST['id']; $vorname = $_POST['vorname']; $nachname = $_POST['nachname']; $kdnr = $_POST['kdnr'];
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" ); if ($conID) { mysql_select_db( $db_name, $conID ); }
mysql_query("INSERT INTO kunden(id,vorname,nachname,kdnr)VALUES('$id','$vorname','$nachname','$kdnr')"); } ?> <html>
<head> <meta http-equiv="Content-Language" content="tr"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <title>Daten in MySQL schreiben</title> </head>
<body>
<p>Bitte tragen Sie unten ihre Daten ein!<br> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <p>id<input type="hidden" name="id" size="20"><br> Vorname<input type="text" name="vorname" size="20"><br> Nachname<input type="text" name="nachname" size="20"><br> Kundennummer<input type="text" name="kdnr" size="20"></p> <p><input type="submit" value="Absenden" name="button"></p> </form> <p> </p>
</body>
</html>
Geändert von webcreate (09.03.2008 um 13:15 Uhr).
Grund: Code highlighting
|
|
|
09.03.2008, 13:18
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
if ($button==" OK ")
kann ja auch nicht funktionieren.
Wenn die register_globals auf off sind, musst es schon $_POST['button'] heißen und der value ist ja auch nicht OK, sondern Absenden.
Nutze einfach
if(!empty($_POST['button']))
|
|
|
09.03.2008, 13:24
|
#4
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
Und den Query sauber formatieren. Ein paar Zusätzliche Leerzeichen würden dem noch gut tun..
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
|
|
|
09.03.2008, 13:29
|
#5
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
Danke für deine schnelle Antwort! Habe diesen Teil gerade abgeändert.
if(!empty($_POST['button']))
Doch leider kommen die Daten aus dem Formular immer noch nicht in der DB an!? Ich hoffe der Rest des Scripts ist einigermassen anständig programmiert.
Die Daten wollen nicht in die MqSQL DB?????
Was muss ich den noch verändern. Würde mich unendlich freuen wenn es mal funktionieren würde. Das fertige Script (Formualrdaten an MySQL übergeben)aus dem traum-projekt hatte ich damals auch probiert und es klappte auch. Aber als ich es nach meinen wünschen nur leicht abändern wollte lief es schon nicht mehr. Wenn das mit meinem Script mal laufen würde, dann würde ich mich voll reinhengen. Doch derzeit ist die Lust echt weg bei mir. Was nicht wird kann aber noch werden.
|
|
|
09.03.2008, 13:30
|
#6
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Und dann noch den Query nur dann ausführen wenn die Verbindung erfolgreich war.
Im Moment wird der Query immer ausgeführt - das ist ein Logikfehler. 
|
|
|
09.03.2008, 13:31
|
#7
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Oyten
|
Wie schon so oft gepredigt:
PHP-Code:
mysql_query(..) or die(mysql_error());
Ohne Fehlermeldung kann man kaum Rückschlüsse auf die Quelle des Fehlers ziehen.
|
|
|
09.03.2008, 13:33
|
#8
|
|
TP-Moderator
Registriert seit: Aug 2004
Ort: Kaiserslautern
|
Laß mal das mit dem $id weg. Das sollte ein auto_inc Wert sein und Du erzwingst das setzen. Allerdings nimmst Du ein $_POST['id'] dafür her, dass gar nicht existiert und logischerweise leer ist. Wie so also die DB einen Datensatz mit der ID xy hinzufügen, wenn xy gar nicht existiert?
Also, entweder überall das "id" rausnehmen oder im Formular dem Hidden-Field auch einen Value mit der ID mitgeben.
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
|
|
|
09.03.2008, 13:42
|
#9
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
Aktuell sieht das bei mir nun so aus: (Tabellen Struktur)
Feld Typ Null Standard
vorname varchar(100) Ja NULL
nachname varchar(100) Ja NULL
kdnr int(255) Ja NULL
Script:
<?
$dbname="kunden";
$dbhost="localhost";
$dbuser="root";
$dbpass="Mein Passwort";
if(!empty($_POST['button']))
{
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$kdnr = $_POST['kdnr'];
$conID = mysql_connect( $db_host, $db_user, $db_pass ) or die( "Die Datenbank konnte nicht erreicht werden!" );
if ($conID)
{
mysql_select_db( $db_name, $conID );
}
mysql_query("INSERT INTO kunden(id,vorname,nachname,kdnr)VALUES('$vorname','$nachname','$kdnr')") or die(mysql_error());
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="tr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Daten in MySQL schreiben</title>
</head>
<body>
<p>Bitte tragen Sie unten ihre Daten ein!<br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Vorname<input type="text" name="vorname" size="20"><br>
Nachname<input type="text" name="nachname" size="20"><br>
Kundennummer<input type="text" name="kdnr" size="20"></p>
<p><input type="submit" value="Absenden" name="button"></p>
</form>
<p> </p>
</body>
</html>
|
|
|
09.03.2008, 13:43
|
#10
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
habe gerade noch was geändert.
mysql_query("INSERT INTO kunden(id,vorname etc...
dort das 'id' auch gelöscht. so.
|
|
|
09.03.2008, 13:45
|
#11
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Da hast Du es doch
Zähle man die Anzahl der Felder in der DB und dann die Anzahl der zu schreibenden Felder ... genau 'id' gibt es nicht.
Nun kann man sie weg lassen, besser aber ein feld id mit
`id` int(10) NOT NULL auto_increment
erstellen und dieses wird dann von mySQL selber gefüllt.
Vorteil: Die Datensätze können einmalig identifiziert werden.
|
|
|
09.03.2008, 13:45
|
#12
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
vorname als Primary gesetzt!
|
|
|
09.03.2008, 13:51
|
#13
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Und das soll sinnig sein?
Also imho kann Hans schon mehr als einmal vorkommen.
Die Bedeutung vom Primärschlüssel ist klar? Ein Index wäre da wohl sinniger.
|
|
|
09.03.2008, 14:00
|
#14
|
|
TP-Junior
Registriert seit: Mar 2008
Ort: Deutschland
|
Liebe Leute Danke! Aber ich komme so nicht wirklich an eine Lösung.
Könnte Ihr mir mal eine Schablone aufzeigen, weil ich gerade hyperventiliere. Will gerne nochmals 2. Std. Zeit investieren und von mir aus alles neu programmieren. Die Tabbelenstruktur und das Script. Diese Sache zum laufen zu bringen hat mich sehr viel Zeit gekostet. Das recheerieren etc. Einfach İdee von mir war nur eben Name, Vorname und Kundennummer in einer Datenbank zu speichern. Falls es vieleicht schonmal so eine fertige Schablone gibt würde ich sie gerne ausprobieren. Die Schablone im TP Forum mit den Checkboxen und Führerschein JA/Nein und Radiobutton hatte ich schonmal zum laufen gebracht. Aber wıe schon gesagt als ich es nach meinen Wünschen leicht abändern wollte lief gar nichts mehr. Mensch was wäre ich froh wenn das mit meiner Idee mal funktionieren würde. Ich habe leider immer nur wenig Zeit für mein Hobby.
|
|
|
09.03.2008, 14:43
|
#15
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Du solltest nun wirklich mal aufmerksamer programmieren.
Schau Dir mal die Vars zur DB an und dann mal den Verbindungsaufbau.
$dbhost != $db_host
Weiterhin solltest Du Dir die Tutorials echt mal durchlesen.
Hier nun Dein Problemkind
Code:
CREATE TABLE `tp` (
`id` int(10) NOT NULL auto_increment,
`vorname` varchar(255) NOT NULL,
`nachname` varchar(255) NOT NULL,
`kdnr` int(10) NOT NULL,
PRIMARY KEY (`id`),
KEY `nachname` (`nachname`)
)
PHP-Code:
<?php $dbname = "kunden"; $dbhost = "localhost"; $dbuser = "root"; $dbpass = "DBPasswort"; $tabelle = "kunden";
if(!empty($_POST['button'])) { $vorname = mysql_escape_string($_POST['vorname']); $nachname = mysql_escape_string($_POST['nachname']); $kdnr = intval($_POST['kdnr']); $conID = mysql_connect( $dbhost, $dbuser, $dbpass ) or die( "Die Datenbank konnte nicht erreicht werden!".mysql_error() ); if ($conID) { mysql_select_db( $dbname, $conID ); $sql ="INSERT INTO `$tabelle`( `vorname`, `nachname`, `kdnr` )VALUES( '$vorname', '$nachname', '$kdnr' )"; $result = mysql_query($sql) or die(mysql_error()); $insert = mysql_affected_rows() == 1 ? 'Der Datensatz wurde erfolgreich eingefügt.' : ''; } } ?> <html>
<head> <meta http-equiv="Content-Language" content="tr"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1254"> <title>Daten in MySQL schreiben</title> </head>
<body> <?php echo $insert; ?>
<p>Bitte tragen Sie unten ihre Daten ein!<br> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Vorname<input type="text" name="vorname" size="20"><br> Nachname<input type="text" name="nachname" size="20"><br> Kundennummer<input type="text" name="kdnr" size="20"></p> <p><input type="submit" value="Absenden" name="button"></p> </form> <p> </p> </body> </html>
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
| | |