MySQL-Datenbankeintrag

Hallo liebe Community,

ich hab ein kleines Problem. Ich habe ein PHP-Script gebastelt mit Formular das die eingegebenen Daten in die MySQL Datenbank eintragen soll. Alless läuft momentan nur über XAMP. Ich habe mir schon die auge wund geschaut aber keinen Fehler gefunden. Wenn ich das Script starte gibt er mir immer den Befehl aus "Dateieinngabe fehlgeschlagen" wie ich unten im else zweig mit definiert habe.

Php-Formular:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>

<form action="formular.php" method="post">

<table border="0">
<tr>
<td width="200">KL Suchname:</td><td> <input type="text" name="KLSuchname" /></td>
</tr>
<tr>
<td width="200">Kostenstelle:</td><td><input type="text" name="Kostenstelle" /></td>
</tr>
<tr>
<td width="200">Mietraumstraße:</td><td><input type="text" name="MietraumStrasse" /></td>
</tr>
<tr>
<td width="200">Wohnung:</td><td><input type="text" name="Wohnung" /></td>
</tr>
<tr>
<td width="200">Mieter-Nr.:</td><td><input type="text" name="MieterNr" /></td>
</tr>
<tr>
<td width="200">Mietraum-Nr.:</td><td><input type="text" name="MietraumNr" /></td>
</tr>
<tr>
<td width="200">WoE-Ansprechpartner:</td><td><input type="text" name="WoEAnsprechpartner" /></td>
</tr>
<tr>
<td width="200">WoE-Telefon:</td><td><input type="text" name="WoETelefon" /></td>
</tr>
</table>
<br />
<input type="submit" value="In die Datenbank eintragen" name="submit"/>
</form>
<?php
if (!empty($_POST['submit'])) {
@mysql_connect("localhost", "root", "") or die("Verbindung zur MySQL-Dateinbank fehlgeschlagen!");
@mysql_select_db("1-tabelle") or die("Datenbankzugriff fehlgeschlagen!");
$sql = "INSERT INTO abfrage_nach_vorhandenen_übergabe " . "(id, KLSuchname, Kostenstelle, MietraumStrasse, Wohnung, MieterNr, MietraumNr, WoEAnsprechpartner, " . " WoETelefon) VALUES ('', '$_POST[KLSuchname]', '$_POST[Kostenstelle]', '$_POST[MietraumStrasse]', '$_POST[Wohnung]', '$_POST[MieterNr]', '$_POST[MietraumNr]', '$_POST[WoEAnsprechpartner]', " . "'$_POST[WoETelefon]')";
if (mysql_query($sql)) {
echo "<p>Dateneingabe erfolgreich!</p>";
} else {
echo "<p>Dateineingabe fehlgeschlagen!</p>";
}
mysql_close();
}
?>
<br />

<a href="#"> Zur Dateinbank Ausgabe </a>

</body>
</html>

-----------------------------------------------

MySQL-Quelltext:

create table abfrage_nach_vorhandenen_übergabe(
id int not null auto_increment primary key,
KLSuchname varchar(55),
Kostenstelle varchar(35),
MietraumStrasse varchar(65),
Wohnung varchar(15),
MieterN varchar(10),
MietraumNr varchar(10),
WoEAnsprechpartner varchar(55),
WoETelefon varchar(25)
)


hoffe ihr könnt mir helfen
mfg
 
PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>

<form action="formular.php" method="post">

<table border="0">
<tr>
<td width="200">KL Suchname:</td><td> <input type="text" name="KLSuchname" /></td>
</tr>
<tr>
<td width="200">Kostenstelle:</td><td><input type="text" name="Kostenstelle" /></td>
</tr>
<tr>
<td width="200">Mietraumstraße:</td><td><input type="text" name="MietraumStrasse" /></td>
</tr>
<tr>
<td width="200">Wohnung:</td><td><input type="text" name="Wohnung" /></td>
</tr>
<tr>
<td width="200">Mieter-Nr.:</td><td><input type="text" name="MieterNr" /></td>
</tr>
<tr>
<td width="200">Mietraum-Nr.:</td><td><input type="text" name="MietraumNr" /></td>
</tr>
<tr>
<td width="200">WoE-Ansprechpartner:</td><td><input type="text" name="WoEAnsprechpartner" /></td>
</tr>
<tr>
<td width="200">WoE-Telefon:</td><td><input type="text" name="WoETelefon" /></td>
</tr>
</table>
<br />
<input type="submit" value="In die Datenbank eintragen" name="submit"/>
</form>
<?php
if (!empty($_POST['submit'])) {
@mysql_connect("localhost", "root", "") or die("Verbindung zur MySQL-Dateinbank fehlgeschlagen!");
@mysql_select_db("1-tabelle") or die("Datenbankzugriff fehlgeschlagen!");
$sql = "INSERT INTO abfrage_nach_vorhandenen_übergabe " . "(id, KLSuchname, Kostenstelle, MietraumStrasse, Wohnung, MieterNr, MietraumNr, WoEAnsprechpartner, " . " WoETelefon) VALUES ('', '$_POST[KLSuchname]', '$_POST[Kostenstelle]', '$_POST[MietraumStrasse]', '$_POST[Wohnung]', '$_POST[MieterNr]', '$_POST[MietraumNr]', '$_POST[WoEAnsprechpartner]', " . "'$_POST[WoETelefon]')";
if (mysql_query($sql)) {
echo "<p>Dateneingabe erfolgreich!</p>";
} else {
echo "<p>Dateineingabe fehlgeschlagen!</p>";
}
mysql_close();
}
?>
<br />

<a href="#"> Zur Dateinbank Ausgabe </a>

</body>
</html>

schreib mal bei Dateieinagbe fehlgeschlagen mal die zeile
Code:
echo mysql_error();
und zeig uns mal die ausgabe :)
 
Also, vorab sollte man sich wenn man mit SQL Probleme hat mal mit mysql_error die genaue Fehlermeldung ausgeben lassen. Das macht einem das Leben erheblich leichter.

Was ich auf die schnelle sehe ist, daß du id mit '' belegen willst. Ich kann mir nicht vorstellen, daß das geht. Lass die id ganz weg (vorne und bei VALUES). Die wird ja via auto_increment automatisch erstellt.

Gruß odigo
 
ok, die fehlermeldung von mysql_error() lautet:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '�bergabe (id, KLSuchname, Kostenstelle, MietraumStrasse, Wohnung, MieterNr, Miet' at line 1
 
Du solltest keine Umlaute bei den Tabellennamen verwenden. Du sparst dir viele Nerven und Ärger. Könnte hier auch das Problem sein. Aber zuerst solltest du die id ausbauen wie ich oben erwähnt habe.

Gruß odigo
 
Code:
$sql = "INSERT INTO abfrage_nach_vorhandenen_übergabe " . "(id, KLSuchname, Kostenstelle, MietraumStrasse, Wohnung, MieterNr, MietraumNr, WoEAnsprechpartner, " . " WoETelefon) VALUES ('', '".$_POST[KLSuchname]."', '".$_POST[Kostenstelle]."', '".$_POST[MietraumStrasse]."', '".$_POST[Wohnung]."', '".$_POST[MieterNr]."', '".$_POST[MietraumNr]."', '".$_POST[WoEAnsprechpartner]."', " . '".$_POST[WoETelefon]."')";

Hatte ähnliches auch schonmal, Probier mal obiges
 
Wie odigo schon schrieb, sollten KEINE Umlaute verwendet werden, da SQL diese Befehle nicht verarbeiten kann und es auch nicht tut, siehe Deine Fehlermeldung.

@moveax1
Auch Deine SQL - Abfrage wird nicht funktionieren, da Umlaute verwendet werden.

Grüße

Zephyros
 
Zurück
Oben