---
title: "Volltextsuche in RTE-Textfeld"
url: "https://www.typo3.net/d/17051-volltextsuche-in-rte-textfeld"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Datenbank","Frage"]
created: "2004-10-19"
last_reply: "2004-10-25"
replies: 2
solved: false
page: 1
pages: 1
lang: "de"
---

# Volltextsuche in RTE-Textfeld

Extensions › Entwicklung · 2 Antworten · gestartet 2004-10-19

## Eröffnungsbeitrag

**Dirk Jung** · 2004-10-19 · [Beitrag #1](https://www.typo3.net/d/17051-volltextsuche-in-rte-textfeld/1)

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

```php
$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:

```plaintext
$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

## Antworten

### [#2](https://www.typo3.net/d/17051-volltextsuche-in-rte-textfeld/2) · maxhb · 2004-10-20

Hi!
Schau Dir doch mal die MySQL-Funktion REGEXP an. Mit der kannst Du mittels regulärer Ausdrücke innerhalb einer MySQL-Tabelle suchen und so z.B. nur Texte ausserhalb von HTML-Tags matchen.
Wie so ein regulärer Ausdruck auszusehen hat lass ich mal als Übung für den geneigten Leser offen ;)

CU
 maxhb

### [#3](https://www.typo3.net/d/17051-volltextsuche-in-rte-textfeld/3) · Dirk Jung · 2004-10-25

Hallo,

ja, sowas in der Art suchte ich. Ich muss also alles herausfiltern, was innerhalb von "<" und ">" steht, wobei es allerdings die Möglichkeit gibt, dass diese Zeichen nicht als Tag-Markierung verwendet werden, sondern im zu durchsuchenden Text stehen...

So gesehen, ist die PHP-Funktion strip_tags(string) schon sehr mächtig.

Bin mal gespannt, ob ich das hinbekomme.

Der in meinem ersten Posting beschriebene Workaround funktioniert jedenfalls schon mal. Und wenn die Zahl der zu bearbeitenden Datensätzen nicht allzu hoch ist, dürfte es hinsichtlich der Performance keine Probleme geben. Ich bin mir auch gar nicht sicher, was mehr Ressourcen braucht: Die Arbeit von PHP erledigen zu lassen und zusätzlich eine MYSQL-UPDATE-QUERY und eine SELECT-QUERY durchzuführen oder die Sache allein von MYSQL über REGEXP erledigen zu lassen.

Wenn ich mit REGEXP weiterkomme, werde ich es hier schreiben. Ich denke, daran sind auch noch andere interessiert.

Gruß
Dirk

---

Quelle: „Volltextsuche in RTE-Textfeld“, typo3.net, https://www.typo3.net/d/17051-volltextsuche-in-rte-textfeld
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
