Formatierung geht verloren beim Auslesen aus DB

Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 15:46:56 von Werner Hofer

Hallo

es ist zum verrückt werden.... Ich verwende PHP und Mysql als Datenbank. Das
Problem ist folgendes: In einem normalen Formular gebe ich in ein
mehrzeiliges Textfeld () normalen Text ein. Dieser
Text beinhaltest auch mehrere Leerzeichen (spaces) hintereinander. Beim
Senden des Formulares werden die Daten
mit einem PHP Script in die Datenbank eingetragen (insert into....). Wenn
ich nun den Text wieder aus der Datenbank auslesen will, gehen die
Leerzeichen verloren !!!
Die Ausgabe soll genau so erfolgen wie die Eingabe!

Ein Beispiel dazu:

Eingabe:
--------
Die Sonne scheint morgen
eventuell doch noch

Ausgabe:
---------
Die Sonne scheint morgen eventuell doch noch


Die Ausgabe ist natürlich nicht identisch mit der Eingabe (Zeilenumbruch und
Leerzeichen gehen verloren)!!!

Kann mir jemand einen Tipp geben ?

Besten Dank
Werner Hofer

Re: Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 16:01:34 von Rainer Huebenthal

Moin Werner Hofer, du schriebst:

> es ist zum verrückt werden.... Ich verwende PHP und Mysql als Datenbank.

PHP hab ich noch nie als Datenbank benutzt,

> mit einem PHP Script in die Datenbank eingetragen (insert into....). Wenn
> ich nun den Text wieder aus der Datenbank auslesen will, gehen die
> Leerzeichen verloren !!!

"Multiple exclamation marks," he went on, shaking his head,
"are a sure sign of a diseased mind."
Terry Pratchett

Ausserdem:

> Kann mir jemand einen Tipp geben ?

Ja, alle die, die deinen Sourcecode sehen können, haetten
zumindest eine Chance

cu
Rainer

--
http://www.reisetraeume.com

Re: Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 16:47:23 von Florian Gall

"Werner Hofer" schrieb im Newsbeitrag
news:31e12gF3a5mpqU1@individual.net...
> Hallo
>
> es ist zum verrückt werden.... Ich verwende PHP und Mysql als Datenbank.
Das
> Problem ist folgendes: In einem normalen Formular gebe ich in ein
> mehrzeiliges Textfeld () normalen Text ein.
Dieser
> Text beinhaltest auch mehrere Leerzeichen (spaces) hintereinander. Beim
> Senden des Formulares werden die Daten
> mit einem PHP Script in die Datenbank eingetragen (insert into....). Wenn
> ich nun den Text wieder aus der Datenbank auslesen will, gehen die
> Leerzeichen verloren !!!
> Die Ausgabe soll genau so erfolgen wie die Eingabe!
>
> Ein Beispiel dazu:
>
> Eingabe:
> --------
> Die Sonne scheint morgen
> eventuell doch noch
>
> Ausgabe:
> ---------
> Die Sonne scheint morgen eventuell doch noch
>
>
> Die Ausgabe ist natürlich nicht identisch mit der Eingabe (Zeilenumbruch
und
> Leerzeichen gehen verloren)!!!
>
> Kann mir jemand einen Tipp geben ?
>
> Besten Dank
> Werner Hofer
>
Versuchs mal mit dem HTML Tag



MFG
F.Gall

Re: Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 18:53:17 von Niels Braczek

Werner Hofer schrieb:

> Wenn ich nun den Text wieder aus der Datenbank auslesen will, gehen
> die Leerzeichen verloren !!!

Glaube ich nicht. var_dump() zeigt dir warum.
Die Leerzeichen gehen bei der Wiedergabe durch den Browser flöten. Das
gehört aber auch so. Wenn man das nicht will, bietet HTML Möglichkeiten,
das zu unterbinden.

MfG
Niels

--
Wenn Word für Längeres geeignet wäre, würde es nicht
Word, sondern Sentence, Page oder Article heißen.
[Matthias Mühlich de.comp.text.tex]

Re: Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 19:25:16 von Karsten Lied

> Ja, alle die, die deinen Sourcecode sehen k”nnen, haetten
> zumindest eine Chance

@ Rainer
Sehr hilfreich, meiner Meinung nach hat er seine Frage sehr konkret
formuliert, leider kenne ich die Antwort selber nicht, aber mich
interessiert es auch wie man sein Problem lösen könnte.

Aber nur für DICH:

Er liest per HTML Formular einen TEXT ein:
<- Das ganze in einem



und speichert in in einer MYSQL-Datenbank:

INSERT INTO `daten` (`id`,`text`) VALUES ('0','{$_POST["text"]})

und wenn er den Datensatz ausliest gehen Leerzeichen "verloren", falls es
mehr als eins war.

aus " " wird " "
und aus " " wird auch " "

schönen Abnd noch

Re: Formatierung geht verloren beim Auslesen aus DB

am 04.12.2004 19:42:41 von Rainer Huebenthal

Moin Karsten Lied, du schriebst:

> Aber nur für DICH:

Warum schreibst du das dann nicht per Email?

>
> Er liest per HTML Formular einen TEXT ein:
> <- Das ganze in einem


>
> und speichert in in einer MYSQL-Datenbank:
>
> INSERT INTO `daten` (`id`,`text`) VALUES ('0','{$_POST["text"]})
>
> und wenn er den Datensatz ausliest gehen Leerzeichen "verloren", falls es
> mehr als eins war.

Du saugst dir da ziemlich was aus den Fingern. Woher weisst
du, ober nicht eine regex oder ltrim oder rtrim oder sonst
irgendeine Stringfunktion dazwischen hat.

>
> aus " " wird " "
> und aus " " wird auch " "

Wird es nicht. Es wird im Browser nur anders angezeigt.
Aber das scheint deiner supertollen Glaskugel entgangen sein.

cu
Rainer

--
http://www.reisetraeume.com

Re: Formatierung geht verloren beim Auslesen aus DB

am 05.12.2004 00:21:58 von Karsten Lied

> Du saugst dir da ziemlich was aus den Fingern. Woher weisst
> du, ober nicht eine regex oder ltrim oder rtrim oder sonst
> irgendeine Stringfunktion dazwischen hat.

Wenn du mal die Beiträge genau lesen und Interpretieren würdest, dann wärst
du selbst auf den Schluss gekommen.

So Long.

Re: Formatierung geht verloren beim Auslesen aus DB

am 05.12.2004 19:37:00 von Werner Hofer

Hallo zusammen

besten Dank für eure gut gemeinten Vorschläge. Ich möchte kurz Stellung
nehmen zu den verschiedenen Vorschlägen:

Karsten Lied:
Antwort: Genau wie du es nachträglich erklärt hast, habe ich es getan, genau
so. Besten Dank für deine nähere Umschreibung.

Rainer Huebenthal :
Antwort: Ich denke nicht, dass Karsten dies aus den Fingern gesogen hat.
Ich habe mich vielleicht nicht deutlich ausgedrückt und möchte mich für dies
entschuldigen

Florian Gall schrieb: ==>

...

Antwort: Hört sich einfach an, da dieses Tag die Formatierung in Raw Form
belässt. Leider war es für mich nicht die Lösung, da ein eingegebener Text
in einem mehrzeiligen Textfeld automatisch 1:1 übernommen wird. Bei einer
limitierten, maximalen Breite einer Ausgabe (z.B. Feld mit 300 Pixel Breite)
wird die Seite zerissen, da die Ausgabe breiter aus 300 Pixel werden kann
bei einer 1:1 Uebernahme. Dies trifft genau dann zu, wenn ein langer Text
(> 300 Pixel) eingegeben wird und erst nach mehr als 300 Pixel Breite ein
Zeilenumbruch erfolgt.

Niels Braczek schrieb ==> Die Leerzeichen gehen bei der Wiedergabe durch
den Browser flöten. Das
gehört aber auch so. Wenn man das nicht will, bietet HTML Möglichkeiten,das
zu unterbinden.
Antwort bzw Frage: Welche HTML Möglichkeiten meinst du damit?



Ich habe inzwischen eines der beiden Probleme ( Leerzeichen und
Zeilenumbruch gehen verloren) gelöst, genauer gesagt das Problem mit dem
Zeilenumbruch.
Die Lösung ist folgende:
Im Textarea Feld wird die Option wrap="PHYSICAL" angegeben. Dadurch wird der
Zeilenumbruch in Form eines Steuerzeichens mitgesendet. Zusätzlich muss,
bevor die Daten angezeigt werden, der String durch ein Filter durchgelassen
werden. Das Filter entspricht der Funktion nl2br(). Soweit zum
Zeilenumbruch. Nun bleibt noch das Problem, dass Leerzeichen verloren
gehen.... Für das habe ich noch keine Lösung gefunden......

Hey, besten Dank euch allen. Das hat mich sehr gefreut.
Werner Hofer


"Werner Hofer" schrieb im Newsbeitrag
news:31e12gF3a5mpqU1@individual.net...
> Hallo
>
> es ist zum verrückt werden.... Ich verwende PHP und Mysql als Datenbank.
> Das Problem ist folgendes: In einem normalen Formular gebe ich in ein
> mehrzeiliges Textfeld () normalen Text ein.
> Dieser Text beinhaltest auch mehrere Leerzeichen (spaces) hintereinander.
> Beim Senden des Formulares werden die Daten
> mit einem PHP Script in die Datenbank eingetragen (insert into....). Wenn
> ich nun den Text wieder aus der Datenbank auslesen will, gehen die
> Leerzeichen verloren !!!
> Die Ausgabe soll genau so erfolgen wie die Eingabe!
>
> Ein Beispiel dazu:
>
> Eingabe:
> --------
> Die Sonne scheint morgen
> eventuell doch noch
>
> Ausgabe:
> ---------
> Die Sonne scheint morgen eventuell doch noch
>
>
> Die Ausgabe ist natürlich nicht identisch mit der Eingabe (Zeilenumbruch
> und Leerzeichen gehen verloren)!!!
>
> Kann mir jemand einen Tipp geben ?
>
> Besten Dank
> Werner Hofer
>
>
>
>

Re: Formatierung geht verloren beim Auslesen aus DB

am 05.12.2004 20:34:37 von Robert Hennig

Werner Hofer wrote:
>Wenn
> ich nun den Text wieder aus der Datenbank auslesen will, gehen die
> Leerzeichen verloren !!!
> Die Ausgabe soll genau so erfolgen wie die Eingabe!

Hallo Werner,

warum ersetzt du nicht einfach vor der Ausgabe die Leerzeichen durch das
HTML-Metazeichen für Leerzeichen ( )?

Das lässt sich mit preg_replace() recht einfach machen.

$text = "Die Sonne scheint morgen\n eventuell doch noch";
$text = preg_replace("/\s/"," ",$text);

Liebe Grüße

Robert

Re: Formatierung geht verloren beim Auslesen aus DB

am 08.12.2004 19:23:01 von Werner Hofer

Hey, ganz herzlichen Dank.

Beste Grüsse
Werner

"Robert Hennig" schrieb im Newsbeitrag
news:covns5$l73$00$1@news.t-online.com...
> Werner Hofer wrote:
>>Wenn ich nun den Text wieder aus der Datenbank auslesen will, gehen die
>>Leerzeichen verloren !!!
>> Die Ausgabe soll genau so erfolgen wie die Eingabe!
>
> Hallo Werner,
>
> warum ersetzt du nicht einfach vor der Ausgabe die Leerzeichen durch das
> HTML-Metazeichen für Leerzeichen ( )?
>
> Das lässt sich mit preg_replace() recht einfach machen.
>
> $text = "Die Sonne scheint morgen\n eventuell doch noch";
> $text = preg_replace("/\s/"," ",$text);
>
> Liebe Grüße
>
> Robert