Hallo.
Ich habe eine Extension erstellt, bei der u.a. ein RTE-Textfeld namens "rte_feld" verwendet wird. Man gibt also im Backend den Text ein, baut Bilder ein usw.
Das alles wird als HTML-Code in einer Datenbanktabelle namens "tx_extension_tabelle" gespeichert.
Diese Tabelle lese ich mittels
$result = mysql_db_select($datenbank,"SELECT rte_feld FROM tx_extension_tabelle;",$connect);
aus.
Wenn ich einen Eintrag an Hand eines bestimmten Suchbegriffes im Sinne einer Volltextsuche herausfiltern möchte, geht das normalerweise mittels:
$result = mysql_db_select($datenbank," SELECT rte_feld FROM tx_extension_tabelle WHERE rte_feld LIKE '%$suchbegriff%';",$connect)
Fatalerweise findet eine Suche nach z.B. "font" natürlich auch alle Einträge, in denen "font" nicht im eigentlichen Text, sondern innerhalb eines HTML-Tags, etwa "<font size=7>" vorkommt.
Ich suche also eine Möglichkeit, die HTML-Tags aus der Query herauszufiltern, es soll also zuerst des Feld "rte_feld" mit etwas ähnlichem wie dem PHP-Befehl "strip_tags($string)" bearbeitet werden, bevor die WHERE-Bedingung abgeprüft wird.
Eine abgefahrene Möglichkeit ist, erst einen SELECT wie oben ausgeführt zu machen, die Inhalte der gefundenen Felder "rte_feld" in einer Schleife mit strip_tags($result) von den Tags zu befreien und diese im gleichen Durchlauf in einem zusätzlichen Feld "rte_feld_stripped" mittels UPDATE abzuspeichern. Dann habe ich endlich Felder ohne Tags, in denen die Volltextsuche das gewünschte Ergebnis bringt.
Gibt es denn nicht etwas eleganteres?
Gruß
Dirk Jung