Fahrtenbuch genial!
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 09.03.2008, 13:13   #1
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
Question

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 ScriptUnschö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>&nbsp;</p>

</body>

</html>

Geändert von webcreate (09.03.2008 um 13:15 Uhr). Grund: Code highlighting
cemi ist offline   Mit Zitat antworten


Alt 09.03.2008, 13:18   #2
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
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']))
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:21   #3
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
Hi cemi,

Vielleicht hilft dir ja das Formular Tutorial weiter:
Teil 1: Grundlagen
Teil 2: Arrays
Teil 3: Datei Upload
Rizzo ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:24   #4
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine UserAdromir lebt für das TP und seine User
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
Adromir ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:29   #5
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
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.
cemi ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:30   #6
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
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.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:31   #7
DSB
TP-Veteran
 
Benutzerbild von DSB
 
Registriert seit: Mar 2005
Ort: Oyten
DSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKEDSB ist ein richtiges Arbeitstier - DANKE
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.
__________________
Gruß, DSB
Einfaches Backup/ Restore Deiner MySQl-Datenbank
DSB ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:33   #8
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
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.
Rizzo ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:42   #9
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
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>&nbsp;</p>
</body>
</html>
cemi ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:43   #10
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
habe gerade noch was geändert.
mysql_query("INSERT INTO kunden(id,vorname etc...

dort das 'id' auch gelöscht. so.
cemi ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:45   #11
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
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.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:45   #12
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
vorname als Primary gesetzt!
cemi ist offline   Mit Zitat antworten
Alt 09.03.2008, 13:51   #13
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
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.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 09.03.2008, 14:00   #14
TP-Junior
 
Registriert seit: Mar 2008
Ort: Deutschland
cemi macht alles soweit korrekt
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.
cemi ist offline   Mit Zitat antworten
Alt 09.03.2008, 14:43   #15
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
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() == '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>&nbsp;</p>
</body>
</html>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Formuladaten mit PHP an MySQL übergeben? Formuladaten mit PHP an MySQL übergeben?
« PHP Funktion gesucht | Tabellendarstellung in PHP »

Stichworte
datenbank, mysql

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen