AlexBausW: Suchfunktionhilfe

Beitrag lesen

Hallo Alex,

[...]

Jetzt moechte ich die Moeglichkeit geben, mehrere Suchbegriffe einzugeben (getrennt durch ein Leerzeichen) und Gross/Kleinschreibung sollen beachtet werden. Ausserdem soll man noch die Moeglichkeit haben, dass entweder 1 Suchbegriff oder alle, die eingegeben wurden, zum Auflisten (in der Ergebnisliste) reicht.

[...]

Mein Vorschlag wäre, Deine Suchbegriffe beim Leerzeichen zu splitten, und für jedes Wort die Suche durchzuführen.
Dann zählts Du für jeden Suchbegriffe mit, ob er gefunden wurde. Ist dies Zahl gleich der Anzahl der Suchbegriffe, hast Du ein AND, falls sie Null ist kein Suchergebnis, andernfalls entspricht es einer OR-Suche.

$record = "blablabblub......";

@keywords = split / /, $query;
foreach $key (@keywords) {
  $match++ if $record =~ /$key/;
}
if ($match > 0 && $match <= scalar(@keywords) && $search eq "or") {
  push @ergebnis, $record;
}
elsif ($match == scalar(@keywords) && $search eq "and") {
  push @ergebnis, $record;
}
else { print "Kein Ergebnis"; }

Mit entsprechenden Veränderungen kannst Du auch Deine Suchfunktionen auf "ganzes Wort", "caseinsensitiv",... erweitern.

HtH und das das so funktioniert ;-) (hab`s nicht mehr getestet, aber die Idee dürfte stimmen :-)

Gruß AlexBausW

P.S.: Bereinigen, so daß es auch mit 'use strict' läuft, musst Du selber ;-)