Philipp Hasenfratz: Datenbank durchsuchen

Beitrag lesen

Halihallo Anja

Ich möchte nämlich, dass es auch möglich ist, in einem Feld nach mehreren Schlüsselwörtern gleichzeitig zu suchen, bzw. diese mit boolschen Werten zu verbinden.
Also z. B. nach SchlüsselwortA UND SchlüsselwortB zu suchen.

Ich glaube, dass es das intelligenteste wäre, dieses in SQL umzusetzen (denn damit
geht es ziemlich einfach). Eine eigene Implementierung auf Seiten der Scriptsprache
ist nicht performant und erhöht die Komplexität des Programmes.

Wenn ich anstatt der aufwendigen Generierung des SQL Strings die Methoden des Recordsets benutze, gäbe es dann irgend eine halbwegs elegante Lösung? D. h. eine Möglichkeit das ganze zu realisieren, ohne weiter zig Alternativen zu implementieren?

Alternativen sind schlecht. Definiere eine Verarbeitungsvorschrift, welche die Daten
aus der Suchmaske algorithmisch, also automatisch in einen SQL-Query transformiert.
Ist die bool'sche Abfragesprache einfach definiert (z.B. keine Klammerung, nur AND und
OR) ist dies nicht schwer.

Ich würde mich über jede Idee oder möglichen Lösungsansatz freuen.

Der Lösungsansatz hängt massgebend davon ab, wie du _genau_ realisieren möchtest. Was
heisst für dich "boolsche Werte verbinden". Wie Komplex darf dieses verbinden sein?
"Klammerebenen" erlaubt? - Gibt es auch ein OR?
Die Komplexeste Variante mit OR und Klammerung ist problematisch, da der SearchQuery
nicht mehr einfach geparsed werden kann (und das musst du tun, um ihn in den SQL-query
zu übersetzen). Meiner Meinung nach wäre es am klügsten eine vorgegebene Maske zu
verwenden (Stichwort1, Drop-Down mit logischem Operanden, Stichwort2, ..., Stichw. n),
dann fällt auch das SearchTerm-Parsing weg und das ganze liesse sich relativ einfach
in den SQL-query transformieren.

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.