Steffen: MySQL: Sonderzeichen herausfiltern

Hallo,

ich möchte aus einem über mod_rewrite (was hier nicht weiter relevant ist) emulierten seitentitel (zB gaestebuch.html) die entsprechende Seite aus einer Datenbank holen (zB Gästebuch).

Hierzu muss ich natürlich alle Umlaute/ß ersetzen, sowie in kleinschreibung verwandeln, was ich bereits hinbekommen habe:

WHERE
REPLACE (
  REPLACE (
    REPLACE (
      REPLACE (
        LOWER( seitentitel ) ,
      'ö', 'oe'),
    'ä', 'ae'),
  'ü','ue'),
'ß','ss') LIKE 'oeffnungszeiten'

Nun stehe ich aber vor dem Problem, alles, was nicht buchstabend sind (Leerzeichen, ", & ...) herausfiltern zu müssen, da es auch Seitentitel wie "Hinz & Kunz" geben kann ;-)

Im Mysql-manual habe ich zwar einiges zu Reg-expressions gefunden, allerdings bräuchte ich ja eine art preg_replace, da ich ja nicht nach einem String suchen will, der nur aus "[a-z0-9]" besteht, sondern jeden Spalteninhalt zunächste in das Format verwandeln will und dann auf gleichheit mit dem gesuchten String prüfen will.

Es wäre sehr hilfreich, wenn mir jemand auf die Sprünge helfen könnte, wie ich das machen könnte.

Steffen

  1. Suche mal nach folgendes Stichworten:
    htmlentities
    strip_tags
    stripslashes
    strip_tags
    str_replace
    Da findest du bestimmt was.

    1. Servus,

      auf DB Bezogen hiest ds trasnlate.

      Gruss matze

      1. Servus,

        auf DB Bezogen hiest ds trasnlate.

        Gruss matze

        mhh... danke, aber nach
        http://www.mysql.com/information/crash-me.php
        wird TRANSLATE von mysql anscheinend nicht unterstützt.
        Deswegen konnte ich auch im mysql-manual nix dazu finden.

        Was gäbe es sonst noch für möglichkeiten?

        Danke,
        steffen

        1. Hi,

          solangsam weiss ich nwarum Ich nie Mysql eigesetzt habe...

          Du solltest eventuell vor dem Insert es mit einer anderen Sprache erledigen. Dor musst Du mal sschauen welche Methoden es gibt Beipiele findest Du in der andern antwort.

          Gruss Matze

          1. Du solltest eventuell vor dem Insert es mit einer anderen Sprache erledigen. Dor musst Du mal sschauen welche Methoden es gibt Beipiele findest Du in der andern antwort.

            Naja, der extreme Vorteil, wenn ich das ausschließlich über die eine Mysqlabfrage beim auslesen machen kann ist, dass ich das CMS nicht an etlichen Stellen verändern muss, was ein gewisser Aufwand wäre.

            Weiter REPLACE für (die gebräuchlichsten) Sonderzeichen (&, !?'") wären ja eine Möglichkeit - aber was, wenn dann doch mal jemand ein % einbaut ;-|

            Ich werde es aber mal so versuchen - schließlich ist das CMS auch nur für kleinere Seiten gedacht, die eh auf Shared-Servern laufen. Nicht, dass da eine Query den Server in die Knie zwingt.

            mfg,
            steffen

  2. Servus,

    hierbei könnte dir dei SQL Funktion Translate sehr nützlich sein.

    Gruss Matze