Wer suchet, der findet

Teil 2: Webseiten mit ASP

  1. Webseiten mit ASP
  2. Teil 2: Webseiten mit ASP
  3. Teil 3: Webseiten mit ASP

Bei der ODER-Verknüpfung wird wieder mit der Kontrollvariablen gefunden gearbeitet. Sie wird aber vor jeder Prüfung auf 0 gesetzt, sodass zunächst angenommen wird, dass es keine Fundstelle gab. Findet das Programm in der Stringkontrolle eine Übereinstimmung, wird gefunden um 1 erhöht.

Webseiten mit ASP

© Archiv

Das Nonplusultra Volltextsuche

Bei der Zuweisung des endgültigen Zustandes der Suche im Array fundstelleoder muss also lediglich geprüft werden, ob gefunden gleich 0 ist, dann wurde keiner der Suchbegriffe ermittelt, oder ob der Wert größer als 0 ist, genau dann gab es mindestens eine Übereinstimmung und das entsprechende Produkt gehört in die anzuzeigende Liste.

Die NICHT-Verknüpfung ist fast identisch mit der UND-Verknüpfung. Der Zustand in der Kontrollvariablen gefunden wird hier lediglich bei einer Übereinstimmung des Stringvergleichs unwiderruflich auf 0 gesetzt. Denn die eingegebenen Begriff dürfen ja auf keinen Fall in der Liste auftauchen.

Kategoriensuche

Das Filtern der Daten auf bestimmte Produktgruppen sollten Sie auf jeden Fall mit anbieten. Durch einfache Auswahl der Produktgruppen mit einem Mausklick gelangen viele Besucher bereits zum Ziel. Sie müssen auch keine Begriffe eintippen, ungewollte Anzeigen aufgrund von Tippfehlern werden von Anfang an vermieden.

Solche Produktgruppen lassen sich sehr übersichtlich mit Radio-Buttons erzeugen. Der Besucher kann dann genau eine der vorhandenen Kategorien auswählen und natürlich auf Wunsch durch zusätzliche Suchwörter weiter eingrenzen.

Um die vorhandenen Kategorien in der Suchmaske mit einzubeziehen, lohnt es sich, diese direkt aus der Datenbank zu nehmen und nicht per Hand im HTML-Code einzutragen. Das hat den großen Vorteil, dass sich die Produktgruppenliste stets selbst generiert. Neue Produktgruppen erscheinen automatisch auf der Webseite, wenn Sie diese in der Datenbank definiert haben. Natürlich werden Produktgruppen ebenso nicht mehr angezeigt, wenn Sie alle Produkte einer solchen Kategorie aus dem Datenbestand entfernt haben.

Unser Datenbestand ist in einer einzigen Tabelle erfasst. Jedes Produkt besitzt ein eigenes Feld für die Produktkategorie - hier das Genre des Buchs. Das bedeutet, sie können nicht einfach die Liste der Produktkategorien als Radio-Buttons in die Webseite schreiben, da sonst alle doppelten Genres mehrfach in dieser Liste auftauchen. Zunächst müssen also die doppelten Einträge aus der bestehenden Liste eliminiert werden.

Das geschieht gleich beim Einlesen aller Daten aus der Datenbank. Ein eigenes Array namens genreliste soll die verschiedenen Produktgruppen aufnehmen. Beim ersten Datensatz, der aus der Datenbank geholt wird, muss das Genre auf jeden Fall in die Genreliste eingetragen werden. Das ist der Fall, wenn die Zählvariable z gleich 1 ist. Dieser Sonderfall wird in den Zeilen 1 und 2 abgefangen. Danach liegt eine Produktkategorieliste mit genau einem Element vor. Wir vergleichen im Folgenden die Genres der weiteren Produkte immer mit den bereits erfassten.

Mit der logischen Hilfsvariablen neueintrag ist das sehr einfach. Sie wird bei jedem neuen Datensatz zunächst auf true gesetzt. Wir gehen also davon aus, dass das Genre des jeweils nächsten Datensatzes in die Liste aufgenommen werden soll. Es folgt eine Laufanweisung, die die bereits erfassten Genres mit dem des aktuellen Datensatzes vergleicht. Gibt es eine Übereinstimmung, ist das Genre bereits vorhanden und die Variable neueintrag wird auf False gesetzt.

Wenn alle Einträge geprüft wurden, schaut das Programm in Zeile 10 nach, ob das aktuelle Genre aufgenommen werden soll. Das ist genau dann der Fall, wenn neueintrag den Wert True besitzt. Die Zählvariable y wird um 1 erhöht und das Genre der Liste hinzugefügt.

01 if z=1 then
02 genreliste(y) = books("genre")
03 else
04 neueintrag = true
05 for j=1 to z
06 if genreliste(j) = books("genre")
then
07 neueintrag = false
08 end if
09 next
10 if neueintrag then
11 y = y +1
12 genreliste(y) = books("genre")
13 end if
14 end if

Das Einbinden der Radio-Buttons geschieht mit einer Laufanweisung direkt im HTML-Code. Da die Anzahl der Produktkategorien in y gespeichert ist, können Sie einfach eine For-Next-Schleife von 1 bis y definieren und die nötigen Buttons mitsamt den Values und Beschriftungen untereinander schreiben lassen.

Value und Beschriftung sind die gleichen Werte und im Array genreliste gespeichert.

Groß- und Kleinschreibung

Wenn Sie zwischen Groß- und Kleinschreibung unterscheiden wollen, müssen Sie an den Anweisungen dieser Datei nichts verändern. Bei allen Stringkontrollen werden alle unterschiedlichen Zeichen als solche behandelt und miteinander verglichen. Für den Suchenden hat das zur Folge, dass er sehr genau schreiben muss. Denn abend findet Abend nicht, da unterschiedliche Zeichen verwendet werden.

Sie können die Groß- und Kleinschreibung ignorieren, indem Sie mit der lcase-Anweisung arbeiten. Diese Anweisung versetzt den in Klammern notierten String konsequent in die Kleinschreibung (lower case). Bei Gebrauch dieser Funktion sollten Sie immer darauf achten, dass eine Veränderung direkt an den Variablen eine ständige Kleinschreibung verursacht.

Wenn Sie beispielsweise direkt beim Einladen der Daten aus der Datenbank mit lcase arbeiten, werden die Daten auch dort, wo sie eigentlich der Beschreibung des Produkts dienen, kleingeschrieben. Es empfiehlt sich daher, mit lcase keine Variablenzuweisungen zu programmieren, sondern es in Stringvergleichen einzusetzen. Aus dem Stringvergleich

if instr(kennung(i),element)>0 or
?instr(titel(i),element)>0 or
?instr(autor(i),element)>0 or
?instr(originaltitel(i),element)>0 or
?instr(verlag(i),element)>0 or
?instr(covertext(i),element)>0
?then...

wird dann

if instr(lcase(kennung(i)),lcase(ele
?ment))>0 or instr(lcase(titel(i)),
lcase(element))>0 or instr(lcase(au
?tor(i)), lcase(element))>0 or
instr(lcase(originaltitel(i)),
?lcase(element))>0 or
?instr(lcase(verlag(i)),
lcase(element))>0 or instr(lcase(co
?vertext(i)), lcase(element))> 0
?then...

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".