"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Zeilenumbruch & mysql

grOOvekill@ 08.10.2003 - 15:46 1110 7
Posts

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2297
S'gott,

habe diesmal die Search Funktion verwendet, weil ich davon ausgegangen bin, daß sicher schon mal jemand dieses Problem vor mir hatte, aber alle Treffer waren doch irgendwie anders. Deswegen also meine Frage an Euch:

Ich habe ein <textarea>, in welches Text eingetragen wird. Nach einem Klick auf "Speichern" wird dieser Text in einer mysql DB gespeichert. Nachdem sich das <textarea> über mehrere Zeilen erstreckt, kann es sein, daß hie und da nach einem Absatz zweimal Enter eingegeben wird. Nun habe ich das Problem, daß der Text zwar in der DB gespeichert wird, die (in diesem Fall) zwei Entereingaben aber komplett ignoriert werden, was den Effekt hat, daß beim Auslesen aus der DB alles in einer Wurscht steht. Im Internet steht jede Menge über \n's und \r's oder auch andere Alternativen, aber das Einzige, was passiert ist, daß diese Zeichen dann auch in dem String mitgespeichert werden.

Ich habe mal überlegt, ob es sinnvoll wäre, den String nach dem Klick auf "Speichern" zu überprüfen, wo Zeilenumbrüche existieren, um diese dann auf \n's oder \r's oder was auch immer auszutauschen, nur..... wonach soll ich suchen?

Hat irgendjemand eine Ahnung, wie ich dieses Problem bewältigen kann?
tia
Bearbeitet von grOOvekill@ am 09.10.2003, 17:01

Phobos

&#10013;
Avatar
Registered: Jan 2003
Location: 1050
Posts: 2111
nehmen wir an der text der in der mysql-zelle steht wird im script in die variable $text eingelesen:
Code: PHP
$text = str_replace("\n","<br>",$text)

erlärung:

jedes mal wenn du im textarea ein "enter drückst" wird das im code als zeilenumbruch gesehen, dieser zeilenumbruch hat die bezeichnung \n (was soviel wie new line heist)
wenn du beim ausgeben im php script, diese \n durch <br> ersetzt, wird überall dort wo vorher im textarea feld ein enter gedrückt wurde, im html code ein <br> ausgegeben

hth

weiRd

Addicted
Avatar
Registered: Sep 2001
Location: 0xFF3400F2
Posts: 427
afair steht da \n wenn du in der <textarea> enter drückst also einfach nach \n suchen und durch <br> o.Ä ersetzen.
Wenn du es dann wieder ladest einfach nach <br> suchen und durch \n ersetzen

[edit] bzw wenn du es in html ausgeben möchtest bei <br> belassen [/edit]
Bearbeitet von weiRd am 08.10.2003, 15:57

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2297
Heeeeeeeeey! Coole Sache, daß ist genau das, was ich brauche! Shit, dann haben die anderen Threads eh gestimmt! Aber auf die Art und Weise hab' ich gar nicht probiert gehabt! Tausend Dank, Phobos! :)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von grOOvekill@
Heeeeeeeeey! Coole Sache, daß ist genau das, was ich brauche! Shit, dann haben die anderen Threads eh gestimmt! Aber auf die Art und Weise hab' ich gar nicht probiert gehabt! Tausend Dank, Phobos! :)
solche konvertierungen sollten aber normal erst bei der ausgabe der daten erfolgen, und nicht beim speichern.

ps: wenn du den ersten post editierst hast du ganz oben ein dropdown-feld wo daneben "Class" steht, wenn du dass jetzt anclickst - siehe da! ein solved...
solved.png

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
tip: wenn die ausgabeverarbeitung nicht alzu aufwendig ist, ist es sauberer, die html-tags erst bei der ausgabe einzubauen.

Maehmann

OC Addicted
Avatar
Registered: Aug 2002
Location: Vienna
Posts: 1110
am einfachsten is es nach dem auslesen aus der Db einfach die entsprechende Variable durch die Funktion nl2br() jagen ;)

Siehe dazu: http://at2.php.net/manual/de/function.nl2br.php

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2297
Zitat von watchout
solche konvertierungen sollten aber normal erst bei der ausgabe der daten erfolgen, und nicht beim speichern.

ps: wenn du den ersten post editierst hast du ganz oben ein dropdown-feld wo daneben "Class" steht, wenn du dass jetzt anclickst - siehe da! ein solved...
solved.png
Huch! Dieses Solved Pulldown Menü hab ich noch gar nicht bemerkt! Wurde natürlich sofort nachgeholt. :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz