Formular-Daten an MySQL senden

Hallo Leute,

irgendwie mach ich da gerade was falsch ... - nur ich kann leider da nicht
den Fehler finden. :-(

Also ich habe eine Tabelle in MySQL angelegt. Nun würde ich gerne per
Formular einige Felder in dieser Tabelle füllen, wobei im ersten Schritt
nicht alle Felder gefüllt werden sollen.

Sprich meine MySQL Tabelle beinhaltet folgende Felder:

id
transaktionnr
titel
beschreibung
vname
strasssenr
ortplz
email
bemerkung

Wobei id ist Type int(11) auto_increment

Im ersten Schritt sollen per Formular die Felder titel und beschreibung mit
Inhalt befüllt werden ... - die anderen Felder sollen dann später mit einem
weiteren Zusatz-Formular sozusagen dann befüllt werden, sozusagen
Daten-Update ... - id wird ja normalerweise automatisch erzeugt und da
eingetragen ...

So nun habe ich im ersten Schritt folgendes Formular gebastelt:


<form action="eintrag-einfuegen.php" method="post">
<table border="0">
<tr>
<td><b>Titel des Eintrages:</b></td>
<td><input maxlength="255" name="titel" type="text"></td>
</tr>
<tr>
<td><b>Eintrag:</b></td>
<td><textarea cols="30" name="beschreibung" rows="5"></textarea></td>
</tr>
<tr>
<td align="center" colspan="2">
<input name="Send" type="submit" value="Eintragen">
<input name="Reset" type="reset" value="Löschen">
</td>
</tr>
</table>
</form>


Mein Weiterverarbeitungsscript eintrag-einfuegen.php sieht derzeit so aus:


<?php

$DatabasePointer=mysql_connect("host", "user", "pw");
mysql_select_db("datenbank", $DatabasePointer);

$SQL = "INSERT INTO transaktion (id, transaktionnr, titel, beschreibung,
vname, strasssenr, ortplz, email, bemerkung) VALUES ('', '', '"
$_REQUEST['titel']."', '".$_REQUEST['beschreibung']."', '', '', '', '',
'')";
mysql_query($SQL, $DatabasePointer);

if(mysql_affected_rows($DatabasePointer)==1)
{
?>
Vielen Dank für Ihren Eintrag!<br>
Zurück
<?php
}
else
{
?>
Beim Eintragen ist ein Fehler aufgetreten.<br>
Zurück
<?php
}
?>


Nach ausfüllen des Formualar und absenden bekomme ich immer:

Beim Eintragen ist ein Fehler aufgetreten.

ausgegeben.

Die Werte für host, user, pw, datenbank sind natürlich richtig im Script
eingetragen.

Kann mir jemand verraten was ich hier falsch mache?
Wäre super, wenn mir hier mal jemand kurz weiterhelfen könnte.
Besten Dank vorab.

Viele Grüße

Sascha
Sascha Blum [ So, 21 August 2005 16:32 ] [ ID #931802 ]

Re: Formular-Daten an MySQL senden

Sascha Blum wrote:
> Hallo Leute,
>
> irgendwie mach ich da gerade was falsch ... - nur ich kann leider da nicht
> den Fehler finden. :-(
>
> Also ich habe eine Tabelle in MySQL angelegt. Nun würde ich gerne per
> Formular einige Felder in dieser Tabelle füllen, wobei im ersten Schritt
> nicht alle Felder gefüllt werden sollen.
>
> Sprich meine MySQL Tabelle beinhaltet folgende Felder:
>
> id
> transaktionnr
> titel
> beschreibung
> vname
> strasssenr
> ortplz
> email
> bemerkung
>
> Wobei id ist Type int(11) auto_increment
>
> Im ersten Schritt sollen per Formular die Felder titel und beschreibung mit
> Inhalt befüllt werden ... - die anderen Felder sollen dann später mit einem
> weiteren Zusatz-Formular sozusagen dann befüllt werden, sozusagen
> Daten-Update ... - id wird ja normalerweise automatisch erzeugt und da
> eingetragen ...
>
> So nun habe ich im ersten Schritt folgendes Formular gebastelt:
>
>
> <form action="eintrag-einfuegen.php" method="post">
> <table border="0">
> <tr>
> <td><b>Titel des Eintrages:</b></td>
> <td><input maxlength="255" name="titel" type="text"></td>
> </tr>
> <tr>
> <td><b>Eintrag:</b></td>
> <td><textarea cols="30" name="beschreibung" rows="5"></textarea></td>
> </tr>
> <tr>
> <td align="center" colspan="2">
> <input name="Send" type="submit" value="Eintragen">
> <input name="Reset" type="reset" value="Löschen">
> </td>
> </tr>
> </table>
> </form>
>
>
> Mein Weiterverarbeitungsscript eintrag-einfuegen.php sieht derzeit so aus:
>
>
> <?php
>
> $DatabasePointer=mysql_connect("host", "user", "pw");
> mysql_select_db("datenbank", $DatabasePointer);
>
> $SQL = "INSERT INTO transaktion (id, transaktionnr, titel, beschreibung,
> vname, strasssenr, ortplz, email, bemerkung) VALUES ('', '', '"
> $_REQUEST['titel']."', '".$_REQUEST['beschreibung']."', '', '', '', '',
> '')";
> mysql_query($SQL, $DatabasePointer);

Lass id vollkommen weg, da AUTO_INCREMENT (oder setze es auf NULL). (Dein Fehler rührt
wohl daher, daß du an id einen leeren String übergibts und keine Zahl)

Bis denn dann
Stefan

>...
>
> Viele Grüße
>
> Sascha
Stefan Rybacki [ So, 21 August 2005 16:39 ] [ ID #931803 ]

Re: Formular-Daten an MySQL senden

Hallo Stefan,

Stefan Rybacki wrote:

>> <?php
>>
>> $DatabasePointer=mysql_connect("host", "user", "pw");
>> mysql_select_db("datenbank", $DatabasePointer);
>>
>> $SQL = "INSERT INTO transaktion (id, transaktionnr, titel, beschreibung,
>> vname, strasssenr, ortplz, email, bemerkung) VALUES ('', '', '"
>> $_REQUEST['titel']."', '".$_REQUEST['beschreibung']."', '', '', '', '',
>> '')";
>> mysql_query($SQL, $DatabasePointer);
>
> Lass id vollkommen weg, da AUTO_INCREMENT (oder setze es auf NULL). (Dein
> Fehler rührt wohl daher, daß du an id einen leeren String übergibts und
> keine Zahl)

bekomme da irgendwie immer noch die Fehlermeldung ...

.... habe das so geändert:

$SQL = "INSERT INTO transaktion (transaktionnr, titel, beschreibung,
vname, strasssenr, ortplz, email, bemerkung) VALUES ('', '"
$_REQUEST['titel']."', '".$_REQUEST['beschreibung']."', '', '', '', '',
'')";

Oder hab ich da nun was falsch verstanden?

Viele Grüße

Sascha
Sascha Blum [ So, 21 August 2005 17:11 ] [ ID #931805 ]

Re: Formular-Daten an MySQL senden

On Sun, 21 Aug 2005 16:32:35 +0200, Sascha Blum wrote:


>mysql_query($SQL, $DatabasePointer);

hier am besten noch ein:

echo mysql_error();

eintragen, dann bekommst du auch Bescheid, welcher Fehler bei der
Datenbank aufgetreten ist.

Gruß Marian

--
Kostenlose Tipps und Tricks zu PHP und MySQL
http://www.heddesheimer.de/coaching/
Marian Heddesheimer [ So, 21 August 2005 17:30 ] [ ID #931806 ]

Re: Formular-Daten an MySQL senden

Hallo Marian,

Marian Heddesheimer wrote:

>>mysql_query($SQL, $DatabasePointer);
>
> hier am besten noch ein:
>
> echo mysql_error();
>
> eintragen, dann bekommst du auch Bescheid, welcher Fehler bei der
> Datenbank aufgetreten ist.

dein Tipp war gold wert!

Problem ist nun behoben! War ein dummer Rechtschreibfehler:

hatte im script "strasssenr" stehen, hätte aber "strassenr" heißen müssen!

Vielen Dank an alle die mir weitergeholfen haben!

Gruß

Sascha
Sascha Blum [ So, 21 August 2005 17:47 ] [ ID #931807 ]
PHP » de.comp.lang.php.datenbanken » Formular-Daten an MySQL senden

Vorheriges Thema: [FAQ/2005-08-21] Loesungen fuer deine PHP-Probleme
Nächstes Thema: Verbindung php - m<sql