webForumDet fria alternativet

Problem med sökning.

3 svar · 256 visningar · startad av Kent

KentMedlem sedan juli 2000355 inlägg
#1

Hej, håller på att bygga en sökmotor som ska söka efter personer,
men den funkar inte riktigt som jag vill, koden som söker igenom textfilen ser ut som följer:

if (($data[0] =~ /$namn/i) || ($data[1] =~ /$epost/i) || ($data[2] =~ /$hemsida/i) || ($data[3] =~ /$intresse/i)) {
resultaten
}

Söker jag efter ex Oskar under namn så visas det bara 1 träff, när det
igentligen ska ge 30 träffar, hur löser jag detta?
Har jag bara en sökslinga ex, if ($data[0] =~ /$namn/i) {
så funkar det utan problem, men det är när jag sätter ihop en lång sökslinga som det krånglar till sig.

Peter_BMedlem sedan apr. 2000642 inlägg
#2

Jag antar att du (naturligtvis ;)) loopar igenom alla rader och kör if-satsen varje gång?

kan du kanske klistra in lite mer kod så vi får en känsla för sammanhanget?

KentMedlem sedan juli 2000355 inlägg
#3

Javisst loopar jag igenom posterna, kod:

open (DATA, "data.txt") || error("Fel.");
@poster = <DATA>;
$rad = @poster;
close DATA;
$raknare = 0;

foreach $rad (@poster) {

@data = split(/\|/,$rad);

if (($data[0] =~ /$namn/i) || ($data[1] =~ /$epost/i) || ($data[2] =~ /$hemsida/i) || ($data[3] =~ /$intresse/i)) {

# resultat

$raknare++;
}
}

Sökningen gav: $raknare träffar.

jakobMedlem sedan aug. 200017 inlägg
#4

Hej,

jag tror att du ska slänga in en /g dvs

if (($data[0] =~ /$namn/ig)

då söker den igenom hela raden istället för att sluta vid första träffen. Tror jag. Rätta mig om jag har fel.

/ Jakob

126 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)