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

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…