/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Opsplitning af ord indtastet af bruger.
Fra : Ole Nilsson


Dato : 01-05-03 13:50

Jeg har en lille søgefunktion. Jeg lurer på hvordan jeg får
"isoleret" hvert ord i en søgetekst. Hvis brugeren f.eks. skriver
"ride udstyr", så kunne jeg godt tænke med at skille disse ord ud
i to variabler og gennemsøge databasen efter links der passer til
HVER at orderne og ikke KUN på begge orderne. Er der nogen der
ved noget om dette ?

Nilsson

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (01-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 01-05-03 14:40

Ole Nilsson skrev:

> Jeg har en lille søgefunktion. Jeg lurer på hvordan jeg får
> "isoleret" hvert ord i en søgetekst.

Kig på funktionen Split. Den deler en streng op i et array.


> Hvis brugeren f.eks. skriver "ride udstyr",

Skal brugeren have ekstra dansktimer (undskyld, undskyld, men det
hedder bare "rideudstyr").

> så kunne jeg godt tænke med at skille disse ord ud
> i to variabler og gennemsøge databasen efter links der passer til
> HVER at orderne og ikke KUN på begge orderne.

Der er flere muligheder.
Du kan få databasen til at søge på begge ord (placeret vilkårligt):

Søgeudtrykket "foo bar" bliver så til
   "WHERE feltnavn LIKE '%foo%' AND feltnavn LIKE '%bar%'

Hvis et match med blot det ene ord er nok kan du skrive:

   "WHERE feltnavn LIKE '%foo%' OR feltnavn LIKE '%bar%'

Du kan lave sqlsætningen ved at gennemløbe arrayet fra split. Her
er et skitseforslag:

Dim sqlWhere
sqlWhere = ""
Dim soegeord, ord

soegeOrd = Split(soegeUdtryk, " ")

For each ord In soegeOrd
   sqlWHERE = sqlWhere & " OR feltnavn LIKE '%" & ord & "%' "
Next

If sqlWhere <> "" Then
   sqlWhere = " WHERE " & Mid(sqlWhere, 4)
End If
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Ole Nilsson (02-05-2003)
Kommentar
Fra : Ole Nilsson


Dato : 02-05-03 13:37

> Ole Nilsson skrev:
>
> > Jeg har en lille søgefunktion. Jeg lurer på hvordan jeg får
> > "isoleret" hvert ord i en søgetekst.
>
> Kig på funktionen Split. Den deler en streng op i et array.
>
>
> > Hvis brugeren f.eks. skriver "ride udstyr",
>
> Skal brugeren have ekstra dansktimer (undskyld, undskyld, men det
> hedder bare "rideudstyr").
>
Det er rigtigt, men mennesker udtrykker sig forskelligt og nogle
gange forkert. Derfor ville funktionen være interessant for mig. Dit
svar giver mig dog et yderligere indblik i mulighederne.
"Splitfunktionen" bruger jeg flittigt i forvejen. Faktisk tror jeg,
at jeg med dine bemærkninger, kan få funktionen op at stå. Ellers
vender jeg frygteligt tilbage.
Tak for hjælpen.

MVH

Nilsson

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (02-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 02-05-03 14:38

Ole Nilsson skrev:

>> Skal brugeren have ekstra dansktimer (undskyld, undskyld, men
>> det hedder bare "rideudstyr").

> Det er rigtigt, men mennesker udtrykker sig forskelligt og
> nogle gange forkert.

Jeg ved det udmærket - fejlen med at splitte ord er desværre
særdeles almindelig. Men under alle omstændigheder er der da
bestemt også situationer hvor det er relevant at søge efter ord
enkeltvis og ikke bare som gruppe.

> Faktisk tror jeg, at jeg med dine bemærkninger, kan
> få funktionen op at stå. Ellers vender jeg frygteligt tilbage.

Held og lykke.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177551
Tips : 31968
Nyheder : 719565
Indlæg : 6408834
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste