Suchabfrage mit mehreren Suchbegriffen

smily

Mitglied
Stichwortsuche mit mehreren Suchbegriffen

Hallo erstmal,

ich benötige dringend Hilfe.

Ich habe ein Formular erstellt, das Begriffe ( die in einem inputfeld vom Benutzer eingegeben werden ) aus der Datenbank auslesen soll.

Das macht es auch wunderbar, aber eben nur EIN Begriff.

Bei Eingabe von mehreren Begriffen getrennt duch Leerzeichen oder Komma funktioniert das aber leider nicht.

Wer kann mir da helfen?

Hatte schon die Idee, die Suchbegriffe in einen String reinzupacken und die einzelnen Begriffe dann irgendwie rauszufiltern .
Habe aber leider keine Ahnung das umzusetzen.

Bin totaler Anfänger was ASP anbelangt.

hier noch kurz ein Auszug meines Quelltextes:

Code:
.................
<form method="get">
<tr>
<td class="rand_mitte" colSpan="3" vAlign="top">
<table cellpadding="0" cellspacing="0" width="100%">
<td height="25" valign=middle>
<input type="text" name="suche" size="40" value="<%=begriffe%>"> 
<input type="hidden" value="Suche" name="senden">
<input class="button" type="submit" value="Suche" name="s1">
</td></tr>
<tr><td colSpan="3" align="right" valign=top height="25">
<p class="normal">zur Zeit	<%=gesamtfaq%>	Fragen/Antworten</p>
</td></tr>
</table>
</td></tr></form>
...................

Dann natürlich die Verbindung zur Datenbank erstellen und die SQL- Anweisung

Code:
.............
sql= ("SELECT * FROM " & db_table & " WHERE (ueberschrift Like '%" & begriffe & "%') OR (frage Like '%" & begriffe & "%') OR (antwort Like '%" & begriffe & "%');")
............


Danke schon im voraus
 
Zuletzt bearbeitet:

Luzie

Erfahrenes Mitglied
Hallo

Es gibt bestimmt unterschiedliche Möglichkeiten der Realisierung.

Hier mal ein einfaches Beispiel, wie ein String auf Leerschritt gesplittet wird und die unterschiedlichen Wörter in einer For-Schleife mit jedem aufgeführten Datenfeld verglichen werden.

Je höher die Ansprüche, desdo komplizierter sind dann die Suchabfragen.

dim datenfeld(2), sqlstring, var, i, j, suche

' --- Feldbezeichnungen in Datenbank

datenfeld(0)="themen"
datenfeld(1)="Kurztext"
datenfeld(2)="Beschreibung"

suche = trim(Request.Form("suche"))

sqlstring = "select * from Tabelle where"
if suche <>"" then
var = split(suche," ")
for i = 0 to ubound(var)
for j = 0 to 2
sqlstring = sqlstring & " " & datenfeld(j)& " like '% " & var(i)&"%' or"
next
next
sqlstring=left(sqlstring,len(sqlstring)-2)
else
sqlstring = left(sqlstring,len(sqlstring)-6)
end if

Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open sqlstring, objConn
 

Neue Beiträge