Thomas: /mySQL Sonderzeichen & html in DB

Guten Morgen,

in einer Tabelle der mySQL DB sind in einer Spalte die Produktnamen (z.B. wasatoast) und in einer anderen der Produktname, so wie er auf der html Seite erscheinen soll (Wasa Toast <sup>®</sup>), also mit höhergestelltem "registered"-Zeichen.

Eine php Funktion holt nun beide Spalten und die erste für den Index eines Arrays $products und die zweite für den Wert des Indexes.

Nun soll dieses Array für eine Select/Option Menü genutzt werden, um direkt zu einem Produkt springen zu können.

Leider steht nun in den Optionen der Select Liste genau das, was auch in der 2. Spalte steht, also html Tags.

Das ist nun sehr dumm.

Jetzt stehe ich auf dem Schlauch.
Wie bekommt man nun den html OUTPUT in die Liste?

Danke

Mit freunlichen Grüßen
Thomas

  1. Hallo (auch) Thomas,

    (Wasa Toast <sup>®</sup>), also mit höhergestelltem "registered"-Zeichen.
    Wie bekommt man nun den html OUTPUT in die Liste?

    Du suchst vermutlich strip_tags()
    http://www.php.net/manual/de/function.strip-tags.php

    Die Entity ® soll ja vermutlich unveraendert ausgegeben werden.
    Deshalb kannst Du nicht htmlspecialchars() verwenden.
    Zur Sicherheit solltest Du aber noch alle spitzen Klammern, die
    nach strip_tags() noch uebrigbleiben, mit einer geeigneten String-Funktion,
    z.B. str_replace(), loeschen oder durch Leerzeichen ersetzen.

    Gruesse,

    Thomas

    1. Guten Tag,

      also erst einmal vielen Dank.

      Eigentlich soll das "registererd"-Zeichen in der Liste höhergestellt dargestellt werden. Oder ist das nicht möglich ?

      Eine generelle Frage zur Speicherung von Texten in einer DB:
      Wenn man nun ein Text Feld in einer DB hat und es gibt dort Zeilenumbrüche in diesem Text, Wörter die Links zu anderen Seiten sind.
      Paragraphen, oder eben Sonderzeichen, Subscripts oder Supscripts.

      Wie speichert man diese Formatierung in der DB. Immer in html ?

      Was ist wenn ich diese Informationen die ich für die Webseite benutze irgenwann einmal in einem C++ Programm benutzen möchte oder was weiß ich.

      Sollten die Informationen nicht so neutral wie möglich gespeichert werden ?

      Aber wie ?

      Thomas

      1. Hallo,

        Eigentlich soll das "registererd"-Zeichen in der Liste höhergestellt dargestellt werden. Oder ist das nicht möglich ?

        Warum probierst Du es nicht einfach aus?

        Wenn
        <option>Blabla <sup>®</sup></option>
        valide ist und "funktioniert", dann brauchst Du
        ja am String gar nichts zu aendern.

        Und sonst nimmst Du eben strip_tags(), und das
        Zeichen ist halt dort (in der SELECT-Liste) auf
        der gleichen Hoehe wie der Text. Ist doch auch egal.

        Wie speichert man diese Formatierung in der DB. Immer in html ?

        Kommt halt sehr darauf an, was Du damit machen willst.

        Kleine Informationseinheiten, z.B. Artikelbezeichnungen, Preise u.s.w.,
        wuerde ich moeglichst als Nur-Text speichern, ohne HTML.

        Bei laengeren Texte, z.B. Artikelbeschreibungen u.s.w., wuerde ich
        durchaus auch HTML einsetzen, wenn das End-Medium Web ist,
        aber halt sparsam, z.B. nur <em> und <strong> als Auszeichnungen,
        aber ganz bestimmt keine FONT-Tags oder Inline-CSS u.s.w.

        Wenn es nur um Web geht, kannst Du also IMHO ruhig HTML verwenden.
        Am besten sauberes HTML, d.h. mit korrekter Verschachtelung
        u.s.w., noch besser XHTML, wo Du dazu noch staerker gezwungen wirst.
        Das erleichtert Dir naemlich die Arbeit, wenn Du spaeter einmal
        maschinell etwas anderes aus dem Text machen willst.

        Manche Freaks werden Dir jetzt vielleicht Vorschlaege machen wie:
        "Nutze ein eigenes XML-Format und wandle dieses im Zeitpunkt
        der Ausgabe ans Endgeraet ins gewuenschte Format um".

        Sowas faende ich aber ziemlich uebertrieben, solange Du nicht
        konkret bestimmte Dinge vorhast, wie z.B. WML-Seiten oder PDFs
        zu generieren, und solange Du nicht extrem viel Zeit uebrig hast,
        um XML und die Umwandlungstechniken (XSLT u.s.w.) zu lernen.

        Just my 2 cents.

        Gruesse,

        Thomas