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

Servus!

Danke fuer deine Ueberlegungen, aber leider hat nichts geholfen...
nochmal zur Erklaerung eins nach dem anderen...

Es wird ein Text in eine Textarea (name="musik_up") bei dem Formular eingegeben:
Text in der Textarea ist z.B. "Test"

Daran schon mal gar nichts problematisches womit die Datenbank ein Problem haben koennte...

Gut, jetzt wird der Inhalt der Textarea mit POST an das Skript uebergeben und in die Variable $musik_up geschrieben, dazu hab ich mit $HTTP_POST_VARS["musik_up"] die Variable uebernommen, also dann ganz einfach:

$musik_up=nl2br($HTTP_POST_VARS["musik_up"]);

Nur nebenbei bemerkt, es macht kein Unterschied ob ich die Funktion nl2br() erst spaeter oder direkt so ausfuehre.

wenn ich jetzt mit echo $musik_up mir den Variableninhalt ausgeben lasse, dann schreibt mir das Skript brav "Test" hin.

Jetzt verwende ich mein SQL Statement

$sql="UPDATE Tabellenname SET musik='$musik_up' WHERE id=$_SESSION[id]";
mysql_query($sql);

Die $_SESSION[id] ist definiert, also nichts zufaelliges.

Jetzt wird der Query ohne beanstandungen ausgefuehrt, nur es wird bei musik in der Tabelle LEER eingetragen, also wie wenn man musik='' geschrieben haette.

Das seltsame ist jetzt, wenn ich mir nach dem Statement mit echo $sql; den Inhalt von $sql ausgeben lasse dann steht da:

UPDATE Tabellenname SET musik='Test' WHERE id='101'

Es wird auch im Datensatz der ID 101 aktualisiert, aber wie gesagt "Test" wird nicht eingetragen...
 
Zuletzt bearbeitet:
Also, es wird etwas geändert, aber dass, was Du änderst wird leer?
[phpf]mysql_affected_rows[/phpf] liefert 1?
Das wird Tricky!
Ich kann mir nur vorstellen, dass es dann irgendwas mit der Tabellendefinition zu tun hat.
Sorry für die blöde Frage, aber Du bist Dir sicher, dass der Feldtyp TEXT ist?
Habe ich zwar noch nichts von gehört, aber gibt es in MySQL einen Schreibschutz?
Felddefinition mit NULL bzw. NOT NULL dürfte auch egal sein.
So langsam gehen mir die Ideen aus.

Gruß hpvw

PS: Unabhängig vom Problem: Datenmanipulation (nl2br) erst bei der Ausgabe machen. du weisst nie, ob Du das am Ende nicht doch lieber in einer Liste (<ul><li>)schreibst oder als einzelne Absätze (<p>) ausgibst oder Deine Seite irgendwann auf XHTML 2 umstellst (<l>Text</l> statt <br>), wenn es denn verabschiedet ist.
 
Ja genau! Du hast das Problem richtig erkannt!

Hab ich mir auch gedacht, dass es was mit der Tabelle zu tun hat, hab die auch schon geloescht und wieder neu angelegt, aber ist das selbe Problem. Schreibschutz kann nicht sein weil wenn ich musik_up='musik: $musik_up' eintragen lasse, dann traegt er brav "musik:" ein, aber eben nicht die Variable, ich versteh auch nicht warum...

Ja das nl2br() hab ich ausch schon weggelassen, hab eigentlich schon alles moegliche probiert...

Ja Feldtyp ist TEXT....seltsam ist, wenn ich den Feldtyp abaendere in VARCHAR ist das gleiche Problem, die Variable wird nicht eingetragen, bzw. LEER wird eingetragen und mysql_affected_rows() liefert 1.

Ja Feldefinition NULL und NOT NULL hab ich auch schon probiert ohne Erfolg!

Echt unglaublich, dass man wegen sowas Stunden lang nach einer Loesung suchen muss *grrrrr*
 
Gleiches Problem

Hallo Gizmo und der Rest!

ich habe mir Interesse Dein Problem gelesen und muss feststellen, dass es mir genauso geht.

Es wird ein Eintrag mittels INSERT in eine Datenbanktabelle geschrieben.

mysql_query("INSERT INTO tvn_termine (changed,date,header,details,location) VALUES (".mktime().",".$date.",'$header','$details','$location')");

Der gesamte String inkl. Variablen sieht so aus:
INSERT INTO tvn_termine (changed,date,header,details,location) VALUES (1113157751,1113084000,'hugo','balder','egon')


Wenn jetzt versucht wird, den Eintrag zu ändern, wird das Feld date auf -1 gesetzt und alle anderen Felder sind leer.

mysql_query("UPDATE tvn_termine SET changed=".mktime().",date=".$date.",header='$header',details='$details',location='$location' WHERE ID=$ID");

Der gesamte String inkl. Variablen sieht so aus:
UPDATE tvn_termine SET changed=1113158011,date=1113084000,header='hugo',details='balder',location='egon' WHERE ID=436

Komischerweise funktioniert das Update beim wiederholten Versuch korrekt. Auch weitere Updates funktionieren dann tadellos.

Wichtig: Eben hab' ich festgestellt, dass dies nur beim Firefox-Browser geschieht, nicht beim Internet Explorer. Könnte es sein, dass dies am FORM-Tag liegt?

-> <form name="edit" action="termine.php?action=save&ID='.$ID.'" method="post">

Danke für die Hilfe!

Roland
 
Zurück