mitglieder datenbank (Fehler )
Thomas Böttner
- php
0 wahsaga0 Thomas Böttner0 wahsaga
0 Tobias Kloth
Hallo an alle, ich bekomme immer die Fehlermeldung:
MySQL-Error: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 'not, email, alter, geschlecht (M/W), groesse, wohnort, beruf) v
und ich weiss echt nicht mehr weiter, kenne mich nicht so mit PHP und SQL aus, ich hoffe ihr habt da mehr plan als ich.
Hier ist noch der link zu dem formular und den Fehler:
http://flame4ever.fl.funpic.de/senden.php
Kann es an der SQL datenbank liegen?
<html>
<head>
<?php
if ($gesendet)
{
$db = mysql_connect(localhost,*datenbank*,*Passwort*);
$sqlab = "insert mitglieder";
$sqlab .= "(nick, name, vorname, hobbys, hot, not, email, alter, geschlecht (M/W), groesse, wohnort, beruf) values ";
$sqlab .= "('$ni', '$na', '$vn', '$hb', '$ht', '$nt', '$em', '$al', '$ge', '$gs', '$wo', '$br')";
mysql_db_query("*datenbank*", $sqlab);
if (mysql_errno()) die ("MySQL-Error:" . mysql_error());
$num = mysql_affected_rows();
if ($num>0)
echo "Es wurde 1 Datensatz hinzugefügt<p>";
else
{
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt<p>";
}
mysql_close($db);
}
?>
</head>
<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das
Formular ab:
<form action = "senden.php" method = "POST">
<input type="text" name="ni"> Nick Name (Spitzname)<p>
<input type="text" name="vn"> Vorname<p>
<input type="text" name="hb"> Was sind deine Hobbys<p>
<input type="text" name="ht"> Wie soll dein Traumpartner sein?<p>
<input type="text" name="nt"> Auf was stehst du garnicht?<p>
<input type="text" name="em"> Deine E-Mail Adresse<p>
<input type="text" name="al"> Wie alt bist du?<p>
<input type="text" name="ge"> Welches Geschlecht bist du? (M für Mänlich / W für Weiblich)<p>
<input type="text" name="gs"> Wie Gross bist du? (in Form XXX cm)<p>
<input type="text" name="wo"> Wo Wohnst du?(Stadt, Bundesland)<p>
<input type="text" name="br"> Was für ein Beruf übst du aus?<p>
<input type="submit" name="gesendet">
<input type="reset">
</form>
Alle Datensätze <a href="html_ausgabe.php">anzeigen</a>
</body>
</html>
datenbank:
Feld Typ Attribute Null Standard Extra Aktion
nick varchar(30) Nein
name varchar(30) Nein
vorname varchar(30) Nein
hobbys varchar(50) Nein
hot varchar(50) Nein
not varchar(50) Nein
email varchar(30) Nein
alter int(3) Nein 0
geschlecht (M/W) char(1) Nein
groesse float Nein 0
wohnort varchar(30) Nein
beruf varchar(30) Nein
hi,
MySQL-Error: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 'not, email, alter, geschlecht (M/W), groesse, wohnort, beruf) v
http://dev.mysql.com/doc/mysql/de/Reserved_words.html
gruß,
wahsaga
Das heist im klartext, wenn ich die alter umbenenne müsste es schon gehen?
Kann man das nicht durch 'alter' beheben, den text zufolge nicht?
hi,
Das heist im klartext, wenn ich die alter umbenenne müsste es schon gehen?
nein.
schau dir die meldung nochmal genauer an - mysql ist nicht erst ab der stelle unzufrieden, wo du alter verwendest.
Kann man das nicht durch 'alter' beheben, den text zufolge nicht?
wenn du reservierte wörter als spaltennamen verwenden willst, nutze backticks, um sie zu notieren reserviertes\_wort.
besser noch, wähle andere spaltennamen, die nicht mit reservierten wörtern kollidieren, um solchen problemen grundsätzlich aus dem weg zu gehen.
was die letzten vier worte deiner frage zu bedeuten haben, lässt sich mit meinem verständnis von deutscher sprache leider nicht dechiffrieren.
gruß,
wahsaga
Was kann es denn noch sein? Ich finde es einfach nicht.
Das mit den spalten habe ich alles geändert.
<html>
<head>
<?php
if ($gesendet)
{
$db = mysql_connect(localhost,xxx,xxx);
$sqlab = "insert mitglieder";
$sqlab .= "(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) values ";
$sqlab .= "($ni, $na, $vn, $hb, $ht, $nt, $em, $al, $ge, $gs, $wo, $br)";
mysql_db_query("xxx", $sqlab);
if (mysql_errno()) die ("MySQL-Error:" . mysql_error());
$num = mysql_affected_rows();
if ($num>0)
echo "Es wurde 1 Datensatz hinzugefügt<p>";
else
{
echo "Es ist ein Fehler aufgetreten, ";
echo "es wurde kein Datensatz hinzugefügt<p>";
}
mysql_close($db);
}
?>
</head>
<body>
Geben Sie einen vollständigen Datensatz ein und senden Sie das
Formular ab:
<form action = "senden.php" method = "POST">
<input type="text" name="ni"> Nick Name (Spitzname)<p>
<input type="text" name="vn"> Vorname<p>
<input type="text" name="hb"> Was sind deine Hobbys<p>
<input type="text" name="ht"> Wie soll dein Traumpartner sein?<p>
<input type="text" name="nt"> Auf was stehst du garnicht?<p>
<input type="text" name="em"> Deine E-Mail Adresse<p>
<input type="text" name="al"> Wie alt bist du?<p>
<p>Welches Geschlecht bist du?</p>
<input type="radio" name="ge" value="Maenlich"> Maenlich<p>
<input type="radio" name="ge"value="Weiblich"> Weiblich<p>
<input type="text" name="gs"> Wie Gross bist du? (in Form XXX cm)<p>
<input type="text" name="wo"> Wo Wohnst du?(Stadt, Bundesland)<p>
<input type="text" name="br"> Was für ein Beruf übst du aus?<p>
<input type="submit" name="gesendet">
<input type="reset">
</form>
Alle Datensätze <a href="html_ausgabe.php">anzeigen</a>
</body>
</html>
hi,
Was kann es denn noch sein? Ich finde es einfach nicht.
und ich finde in deinem posting keine fehlerbeschreibung.
gruß,
wahsaga
Es wird nicht in die datenbank eingetragen und ich bekomme immer den Fehler:
MySQL-Error: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 '1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) values
wo soll der syntax fehler denn sein?
hi,
MySQL-Error: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 '1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) values
ahc ja, hätte mir eigentlich gleich auffallen sollen :-)
wo soll der syntax fehler denn sein?
http://dev.mysql.com/doc/mysql/de/Legal_names.html
gruß,
wahsaga
Hallo Thomas,
neben dem was wahsaga geschrieben hat:
$sqlab .= "(nick, name, vorname, hobbys, hot, not, email, alter, geschlecht (M/W), groesse, wohnort, beruf) values ";
hälst du 'geschlecht (M/W)' für einen sinnvollen Spaltennamen? afaik muss der gequotet werden (siehe http://dev.mysql.com/doc/mysql/de/Legal_names.html).
$sqlab .= "('$ni', '$na', '$vn', '$hb', '$ht', '$nt', '$em', '$al', '$ge', '$gs', '$wo', '$br')";
wo kommen die Variablen her?
mysql_db_query("*datenbank*", $sqlab);
die Funktion ist veraltet, verwende mysql_select_db() und mysql_query()
<input type="text" name="ge"> Welches Geschlecht bist du? (M für Mänlich / W für Weiblich)<p>
warum keine Radiobuttons?
Grüße aus Nürnberg
Tobias
Ich hab leider eine alte SQL datenbank (aber kostenlos).
Leider kenne ich mich nict so mit den Radiobuttons aus wie muss ich die tabellenspalte da anlegen und welchen typ?
Ich werde jetzt erstmal die tabellen umbenennen.
Hallo Thomas,
Ich hab leider eine alte SQL datenbank (aber kostenlos).
?
Leider kenne ich mich nict so mit den Radiobuttons aus
http://de.selfhtml.org/html/formulare/auswahl.htm#radiobuttons
wie muss ich die tabellenspalte da anlegen und welchen typ?
SET, ENUM oder VARCHAR(1) (was es mit den Spaltentypen aufsich hat, steht in http://dev.mysql.com/doc/mysql/de/Column_types.html).
Ich werde jetzt erstmal die tabellen umbenennen.
die Tabelle brauchst du nicht umbenennen - es reicht wenn du die eine oder andere Spalte umbenennst.
Grüße aus Nürnberg
Tobias