Michael Schröpl: (ASP+SQL) Suchformular

Beitrag lesen

Wie muss die SQL-Abfrage aussehen ???
ich bin kein asp-mensch, aber du sollst das sql-übersetzen können:
$sql = "select name,vorname,adresse,plz,ort from adressen where name like '%$formular{name}%' and vorname like '%$formular{vorname}%' and ....
das like liefert dir alle sätze, welche den eingegebenen string enthalten (% steht für keins oder beliebig viele zeichen).

Vieles davon ist sehr wahr.

Aber das Hauptproblem besteht darin, daß erst mal definiert werden muß, welche Ergebnisse eine Suche überhaupt liefern soll.

In dem obigen Beispiel könnte der Benutzer beispielsweise nicht nach *exakten* Werten suchen, weil er immer auch solche Treffer gezeigt bekommen würde, welche die Suchzeichenkette enthalten.
Würdest Du ihm aber beispielsweise erlauben, die "%"-Zeichen selbst einzugeben, dann hätte er einen zusätzlichen Freiheitsgrad - auf Kosten einer komplizierteren Eingabesyntax.
Diese wiederum kann man dadurch umgehen, daß man statt der "%"-Eingabe einen Schalter im Such-Skript setzen läßt, der die Auswertungsstrategie beeinflußt. In Deinem Fall: Wenn der Schalter gesetzt ist, suchst Du mit "LIKE" und ergänzt selbständig die "%"-Zeichen usw. - wenn nicht, dann vergleichen mit "=" (das ist wesentlich performanter als "LIKE") und ohne "%"-Zeichen.
Man kann eine Wissenschaft daraus machen ...

Um eine sinnvolle Suchmaschine zu bauen, muß man vor allem selbst mit Suchmaschinen umgehen können und ihre Stärken und Schwächen lernen.
Und man muß die zu durchsuchenden Daten verstehen und begreifen, welche Suchoperationen sinnvoll (und welche nur Schmackofatz) sind. Man kann den Anwender genauso unter- wie überfordern.

Laß Dich doch mal von unserer Archivsuchmaschine http://www.teamone.de/cgi-local/sfasuch.pl inspirieren ... und vor allem: Rede mit Deinen Anwendern, sonst produzierst Du am Markt vorbei!