Welchen Datentyp muss ich verwenden

hikeda_ya

Erfahrenes Mitglied
Hallo Leute,

welchen Datentyp muss ich bei einer MS-SQL Datenbank verwenden wenn ich ein Text über ein Textarea eingeben will und da auch den Text formatieren will und anschliessend in MS-SQL Speichern will.

Das ganze sollte natürlich auch so Funktionieren wie hier im Forum, mache ich mit "Return" ein Zeilenumbruch - so sollte dieser auch dann anschliessen beim ausgeben auch wieder erscheinen.
 
Hallo!

Wie es bei MS-SQL ist weiss ich nicht, aber bei MySQL langt VARCHAR.

Und die Zeilenumbrüche wandelst Du mit nl2br() um..... ob Du dieses schon beim eintragen in die Datenbank machst oder erst bei der Ausgabe ist eigentlich egal.
Wobei ich allerdings denke das es von der Performance her besser ist, wenn die Zeilenumbrüche gleich beim eintragen umgewandelt werden.

Gruss Dr Dau
 
wie mach ich das mit dem Eintragen

Wie heisst der Befehl das es gleich so übernommen wird? Kann ja schlecht von meinen DAU ´s verlangen die Befehle zu lernen.

varchar schneidet mir den Text aber leider nach 255 Zeichen ab oder?
 
Der „VARCHAR“-Typ ist leider nur auf 255 Zeichen begrenzt. Mit dem Datentyp „TEXT“ stehen dir 2³¹-1 Zeichen zur Verfügung. Die werden wohl reichen.

Was die Verarbeitung angeht, würde ich die Daten immer in Rohform in der Datenbank speichern und erst für die Ausgabe formatieren. Das hat den Vorteil, dass die Formatierung beliebig geändert werden kann und die Urdaten davon nicht beeinflusst werden.
 
PHP:
<?php
$string = "Text
mit
Zeilenumbrüchen.";
 
echo nl2br($string);
?>
Ergebnis:
Code:
Text<br />
mit<br />
Zeilenumbrüchen.
Der Rest sollte wohl klar sein.

Ja, VARCHAR geht nur bis 255 Zeichen.
Bei MySQL gibt es aber auch TEXT und LONGTEXT (frage mich aber nicht nach der max. Zeichenlänge)..... musst Du mal gucken ob es sowas auch bei MS-SQL gibt. ;)
 
Vielen Dank Euch beiden.

Habe "Text" gefunden und umgeändert. Jetzt kommt auch alles an.

das mit dem echo nl2br($string); muss ich noch testen und ausprobieren. übergibst du das vor dem Speichern oder vor der Ausgabe.
 
Wann nl2br() eingesetzt wird ist egal.
Aber wie Gumbo schon sagt, wenn Einträge auch editiert werden sollen, ist es einfacher die Umwandlung erst bei der Ausgabe vorzunehmen..... denn sonst müsstest Du die <br />-Tags erst wieder entfernen, da diese den User sicherlich nur verwirren würden. ;)
 
Wie bereits erwähnt, würde ich die Daten erst zur Ausgabe formatieren. Denn dadurch bleiben die Ursprungsdaten unberührt und die Formatierung kann später beliebig geändert werden.
 
ok und wie kann ich das dann machen


Das Problem ist - die Texte sollen zur Userunterstützung (Wissensdatenbank) dienen.

d.h. ich muss Textestücke fett,kursiv oder GRÖSSER schreiben. Um bestimmte Textpasagen hervorzuheben.
 
hikeda_ya hat gesagt.:
ok und wie kann ich das dann machen
Genauso wie ich oben schon beschrieben haben.
Nur mit dem Unterschied dass der Inhalt von $string nicht im Script steht, sondern der Inhalt aus der Datenbank geholt wird..... welcher zuvor z.b. über ein <textarea> in einem Formular in die Datenbank eingetragen wird.
hikeda_ya hat gesagt.:
d.h. ich muss Textestücke fett,kursiv oder GRÖSSER schreiben. Um bestimmte Textpasagen hervorzuheben.
Auch diese Frage kann man nicht pauschal beantworten.
Wenn z.b. grundsätzlich das Wort "Windows" unabhängig von der Usereingabe automatisch in z.b. Fettschrift angezeigt werden soll, könnte man mit regulären Ausdrücken den Text nach einem passendem Vorkommen durchsuchen lassen.
Zu regulären Ausdrücken kann ich Dir aber nichts sagen..... sind für mich nur Kryptische Zeichen.
Alternativ könntest Du auch einen festen Teilstring (also z.b. "Windows") durch einen anderen festen Teilstring mittels str_replace() ersätzen lassen.
Beispiel:
PHP:
<?php
$string = "Ein String mit fettem Text.";
 
$string = str_replace("String", "<b>String</b>", $string);
$string = str_replace("fettem", "<b>fettem</b>", $string);
 
echo $string;
?>
So werden die Wörter "String" und "fettem" in Fettschrift ausgegeben.

Wenn Text abhängig von der Usereingabe in Fettschrift angezeigt werden soll, könntest Du mit "BBCode" arbeiten (einfach mal im PHP-Forum danach suchen).
Auch beim BBCode gibt es wieder die Möglichkeit den String mit regulären Ausdrücken nach dem BBCode zu durchsuchen und zu ersetzen.
Aber auch hier könntest Du wieder mit str_replace() arbeiten.
Beispiel:
PHP:
<?php
$string = "Ein String mit fettem Text.";
 
$string = str_replace("", "<b>", $string);
$string = str_replace("", "</b>", $string);
 
echo $string;
?>
Ergebnis wie schon zuvor.

Ob der User den BBCode nun per Hand eintippen muss, dieser per Button mit JavaScript eingefügt wird oder Du gar einen "WYSIWYG" Editor wie hier im Forum verwendest (z.b. den FCKeditor), bleibt dabei ganz Dir überlassen.

So, Stichworte solltest Du nun eigentlich genug haben, um über die Suchfunktion weiter zu kommen..... zumal das Thema schon nichts mehr mit der Datenbank zu tun hat.
 

Neue Beiträge

Zurück