Script trägt Daten nicht in Tabelle x ein, in Tabelle y schon
Renegade
- php
0 André Laugks0 Renegade0 Renegade0 André Laugks0 Renegade
0 Christian Seiler
Hallo,
Dieses Script nimmt Daten über ein Formular auf und soll sie dann in die Tabelle "aktuelles" eintragen. Die Formulareingabe funktioniert super, aber die Daten kommen in der Datenbank einfach nicht an!
Wenn ich die Tabelle im Script mal ändere auf eine andere Tabelle, dann funktioniert es... wieso funktioniert das Script bei Tabelle x aber nicht bei Tabelle y? Ich habe auch schon geschaut, ob vielleicht mit der Tabelle was nicht stimmt, aber eigentlich müsste alles okay sein.
Hier mal das Script:
if($titel) {
$eintrag = "INSERT INTO aktuelles (titel, kurztext, longtext) VALUES ('$titel', '$kurztext', '$longtext')";
$eintragen = mysql_query($eintrag);
echo "Daten wurden eingetragen"
} else {
echo "
<form name=form1 method=post action=>
<p><input type=text name=titel></p>
<p><input type=text name=kurztext></p>
<p><input type=text name=longtext></p>
<p><input type=submit name=Abschicken value=Abschicken></p>
</form>";}
?>
Merkwürdig ist das schon.... wenn ich also im Script eine andere Tabelle angeben würde (und die Angaben entsprechend umändere), dann trägt er problemlos ein.
Hab ich irgendwas übersehen?
Hallo!
Wenn ich die Tabelle im Script mal ändere auf eine andere Tabelle, dann funktioniert es... wieso funktioniert das Script bei Tabelle x aber nicht bei Tabelle y? Ich habe auch schon geschaut, ob vielleicht mit der Tabelle was nicht stimmt, aber eigentlich müsste alles okay sein.
Wenn Du es nicht eintragen kannt, muß was mit der Tabelle x nicht stimmen. Vielleicht hat sie ja ein Spaltentype, der nicht das aufnehmen kann, was Du eintragen möchtest.
Vielleicht ist ein Spaltenname falsch geschrieben.
Hier mal das Script:
if($titel) {
$eintrag = "INSERT INTO aktuelles (titel, kurztext, longtext) VALUES ('$titel', '$kurztext', '$longtext')";
$eintragen = mysql_query($eintrag);
// Baue mal hier folgened ein:
echo mysql_error();
echo "Daten wurden eingetragen"
} else {
echo "
<form name=form1 method=post action=>
<p><input type=text name=titel></p>
<p><input type=text name=kurztext></p>
<p><input type=text name=longtext></p>
<p><input type=submit name=Abschicken value=Abschicken></p>
</form>";}
?>
MfG, André Laugks
// Baue mal hier folgened ein:
echo mysql_error();
Okay, hab ich gemacht und jetzt bekomme ich die Fehlermeldung.
You have an error in your SQL syntax near 'longtext) VALUES ('Test-Titel', 'Test-Kurztext', 'Test-Longtext')' at line 1
Zur Übersicht hier nochmal der ganze Befehl:
$eintrag = "INSERT INTO aktuelles (titel, kurztext, longtext) VALUES ('$titel', '$kurztext', '$longtext')";
Ich weiss also jetzt wo der Fehler liegt... oder wo er liegen sollte. Ich sehe jedoch keinen?? Die Syntax ist doch einwandfrei?
Ich habe die Tabelle überprüft und auch mal neu erstellt... die ist auf jedenfall ok.
Jetzt hats geklappt!
Ich habe einfach mal den Befehl
$eintrag = "INSERT INTO aktuelles (titel, kurztext, longtext) VALUES ('$titel', '$kurztext', '$longtext')";
umgeändert in diesen:
$eintrag = "INSERT INTO aktuelles
(titel
, kurztext
, longtext
) VALUES ('$titel', '$kurztext', '$longtext')";
Ich habe also diese Zeichen ` eingefügt. Das kann doch nicht sein? In meinen anderen Scripts habe ich das auch immer ohne die Zeichen gemacht und es geht doch eigentlich auch ohne, oder nicht?
Trotzdem vielen Dank für die Hilfe!
Hallo!
Okay, hab ich gemacht und jetzt bekomme ich die Fehlermeldung.
You have an error in your SQL syntax near 'longtext) VALUES ('Test-Titel', 'Test-Kurztext', 'Test-Longtext')' at line 1
longtext ist ein Spaltentype, wie TEXT, VARCHAR, BLOB, DATE, usw..
Keine Ahnung ob longtext ein reservierter Name ist, IMHO denke ich schon.
Nenne also die Spalte longtext um.
ALTER TABLE tabellenName CHANGE longtext neuerSpaltenName SPALTENTYPE;
MfG, André Laugks
longtext ist ein Spaltentype, wie TEXT, VARCHAR, BLOB, DATE, usw..
Keine Ahnung ob longtext ein reservierter Name ist, IMHO denke ich schon.
Nenne also die Spalte longtext um.
ALTER TABLE tabellenName CHANGE longtext neuerSpaltenName SPALTENTYPE;
Ahh... genau, das muss es gewesen sein. Es hatte zwar vorher mit einem Trick auch geklappt, aber irgendwie nicht richtig... mal funktionierte es, dann mal wieder nicht... ziemlich komisch.
Jetzt wo es geändert ist (in Textkurz und Textlang) geht es einwandfrei :-)
MfG, André Laugks
Grüsse
Renegade
Hallo,
Ich würde mal schauen, was für ein Fehler da kommt:
if($titel) {
$eintrag = "INSERT INTO aktuelles (titel, kurztext, longtext) VALUES ('$titel', '$kurztext', '$longtext')";
$eintragen = mysql_query($eintrag);
if ($eintragen) {
echo "Daten wurden eingetragen"
} else {
echo "Fehler: " . mysql_error ();
}
} else {
echo "
<form name=form1 method=post action=>
<p><input type=text name=titel></p>
<p><input type=text name=kurztext></p>
<p><input type=text name=longtext></p>
<p><input type=submit name=Abschicken value=Abschicken></p>
</form>";}
?>
Hab ich irgendwas übersehen?
ich kann so auf die schnelle nichts falsches entdecken. Ich würde aber folgendes noch tun (weil es "schlechter Stil" ist):
statt
------------------------------
echo "
...
";
------------------------------
------------------------------
?>
...
<?php
------------------------------
schreiben (das macht's übersichtlicher), die Attribute von HTML-Tags in Anführungszeichen setzen, die Variablen vorher validieren und addslashes machen, damit keiner ins SQL-Statement eingrefen kann und dann noch über $_POST auf die Variablen zugreifen und nicht direkt.
Grüße,
Christian