Daten aus Formular Textarea werden nicht in MySQL TEXT-Feld geschrieben

Der-Gizmo

Grünschnabel
Hallo Coderfreunde,

das Problem ist folgendes:
In einem Formular sind mehrere Textareas, die Daten werden an ein PHP-Skript korrekt mit POST uebergeben und in Variablen gespeichert. Das habe ich ueberprueft indem ich die Variablen mit echo ausgeben lasse.
Jetzt moechte ich die Inhalte in ein Datenbankfeld vom Typ TEXT speichern. Vorher wird die Funktion nl2br() auf jede Variable angewedet.
Dann wird ein UPDATE Query ausgefuehrt in dem die Felder in der Datenbank eigentlich aktualisiert werden sollten, allerdings wird immer nichts rein geschrieben, auch wenn vorher etwas drin gestanden ist, dann ist nach dem Query nichts mehr im Textfeld.
Wenn ich den UPDATE Query ausfuehre und zu der Variablen im Textfeld noch beliebigen Text hinzufuege z.B. name="name: $name", dann wird zwar der Text name: gespeichert, allerdings nicht der Inhalt der Variablen $name.
Wenn ich mir den UPDATE Query per echo ausgeben lasse, dann sind dort allerdings alle Variableninhalte enthalten.

Hat jemand eine Idee an was das liegen koennte?

Gruss

Peter
 
Schreibe doch mal ein bisschen Code, auf die jetztige Art einen Fehler zu finden ist wie Lesen im Kaffeesatz..
Gibt MySQL einen Fehler zurück?
 
ok bisschen Code:

Hier ein kleiner Auszug aus dem Formular:
HTML:
<form method="post" name="formular1" action="daten speichern.php"> 							
<table border="0" width="84%" id="table9" cellspacing="5">  
<tr>
<td width="32%"><b>Musikrichtung:</b></td>  									<td width="63%">  			
<textarea rows="3" name="musik_up" cols="30" tabindex="1"></textarea>
</td>
</tr>
</table>

Hier ein kleiner Auszug aus dem PHP-Skript:

PHP:
$musik_up=nl2br($HTTP_POST_VARS["musik_up"]);
$sql = "UPDATE Tabellename SET musik=\"$musik_up\" WHERE id=$_SESSION[id]";
mysql_query ($sql) or die (mysql_error());

Wie gesagt, wenn ich nach dem Query ein
PHP:
echo $sql;
schreibe, dann wird mir der Inhalt von $musik_up angezeigt, aber es wird eben nichts in die Datenbank geschrieben.

Der Query wird ohne Fehler ausgefuehrt, es wird ja auch was gespeichert, leerer Inhalt, aber nicht der Inhalt der Variablen.
 
Zuletzt bearbeitet:
Ist leider das selbe Problem...es wird ein leerer Inhalt in das Feld in der Datenbank geschrieben.
Es liegt bestimmt an der Datenbank, weil wie gesagt, die Variablen kommen an, sie werden nur nicht gespeichert.
Bei einem anderen Skript funktioniert das auch mit dem speichern von Inhalten aus einer Textarea, allerdings ist das ein INSERT Query, kann es sein, dass man irgendwas beim UPDATE Query mit Textareas beachten muss, kann ich mir aber fast nicht vorstellen...!?
 
Nein sonst wuerde ja ein Fehler zurueck gegeben werden!
Du kannst dir ja das Statement ansehen, steht ja oben, ausserdem werden ja die Felder in der Datenbank aktualisiert! Das hab ich schon ein paar mal geschrieben! Es wird eben nur ein leerer Variableninhalt eingetragen!
Wenn schon etwas im Feld in der Datenbank drin steht, dann wird das mit LEER ueberschrieben! Es wird also das Statement ausgefuehrt, nur mit den Variablen gibt es ein Problem! Nur weiss ich nicht welches, weil die Variablen kommen ja im Skript an vom Formular und sogar ins Statement werden die uebernommen, aber eben nicht in die Datenbank!
 
Schreib mal
PHP:
$sql = "UPDATE Tabellename SET musik='".$musik_up."' WHERE id='".$_SESSION['id']."'";
Du verwendest im session-Array die Konstante id, die nur Zufällig "id" ist, nämlich, wenn die Konstante nicht definiert ist. Ausserdem solltest Du prüfen, ob die ID, die da drin steht wirklich der ID der Zeile entspricht, die Du ändern willst.
Variablen nicht im Text verwenden sondern mit Verknüpfungsoperator, der Übersicht wegen, aber das ist meine persönliche Meinung.
Evtl. kann die ID auch ohne (Single-)Quotes im Query stehen (nicht der Arrayindex!), da es ein vermutlich ein INT ist.
 
Zurück