/ 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
søgemaskine med flere ord
Fra : Henrik Overballe


Dato : 01-06-01 16:54

Er der nogen, som ved hvordan man laver en søgemaskine, hvor man kan søge på
flere ord? I de søgemaskiner, som ligger på diverse hjemmesider i
"sourcecode" delen f.eks. Netcoders.dk og Activeserverpages.dk, kan man kun
søge på ét enkelt ord!

Nogen der ka hjælpe?


--
Henrik Overballe - Henno@e-mail.dk




 
 
Jakob Andersen (01-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 01-06-01 17:06

"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17bbd8$0$4203$ba624c82@nntp01.dk.telia.net...
> Er der nogen, som ved hvordan man laver en søgemaskine, hvor man kan søge

> flere ord? I de søgemaskiner, som ligger på diverse hjemmesider i
> "sourcecode" delen f.eks. Netcoders.dk og Activeserverpages.dk, kan man
kun
> søge på ét enkelt ord!

Søge er et vidt begreb, hvad er det du ønsker at søge i?

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Henrik Overballe (01-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 01-06-01 17:48

> Søge er et vidt begreb, hvad er det du ønsker at søge i?

Jeg er ved at opbygge en søgemaskine, www.paintshop.dk/sputte.dk, hvis du er
interesseret i at se den, men hvis man skriver f.eks. 2 eller 3 forskellige
ord, så skriver den bare at der ikk blev fundet noget! Hvis man derimod
søger på hvert enkelt ord, så kommer der mange links frem - hvoraf mange
disse links har de samme 2 eller 3 ord, som identifikation.

Håber du forstår, hva jeg mener

--
Henrik Overballe - Henno@e-mail.dk





Henrik Overballe (01-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 01-06-01 18:16

> Søge er et vidt begreb, hvad er det du ønsker at søge i?

Undskyld, men jeg svarede aldrig på dit spørgsmål Det er en database,
som der skal søges i !


--
Henrik Overballe - Henno@e-mail.dk



Jakob Andersen (01-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 01-06-01 19:00

Jeg går udfra at du bruger noget LIKE i en SQL Statement som denne:

strSQL = "SELECT Felt1, Felt2 FROM tabel WHERE felt1 = noget"

Hvis det er tilfældet kan du jo lave en lille lykke der løber igennem dine
søgeord adskilt med " ".

arrSogeord = Split(Request.Form.Item("SogeFelt"), " ")
For i = 0 to Ubound(arrSogeord)
SQL = SQL & " AND felt1 LIKE '%" & arrSogeord(i) & "%'"
Next

PS: Ovenstående er overhovedet ikke testet.

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "
"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17cefa$0$4208$ba624c82@nntp01.dk.telia.net...
> > Søge er et vidt begreb, hvad er det du ønsker at søge i?
>
> Undskyld, men jeg svarede aldrig på dit spørgsmål Det er en database,
> som der skal søges i !
>
>
> --
> Henrik Overballe - Henno@e-mail.dk
>
>



Jørn Andersen (01-06-2001)
Kommentar
Fra : Jørn Andersen


Dato : 01-06-01 19:29

On Fri, 1 Jun 2001 20:00:22 +0200, "Jakob Andersen"
<jakob@andersen.as> wrote:

> SQL = SQL & " AND felt1 LIKE '%" & arrSogeord(i) & "%'"

AND kan evt. erstattes med OR, hvis den skal finde poster, hvor blot
ét af søgeordene matcher

Good luck,
Jørn


--
Jørn Andersen
Brønshøj

Henrik Overballe (01-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 01-06-01 19:29

> strSQL = "SELECT Felt1, Felt2 FROM tabel WHERE felt1 = noget"

Ja!..det gør jeg..altså bruger en lignende SQL streng, men det ser bare ikk
lige ud til at virke

Her er kildekoden, måske du/I ka finde nogle fejl?

arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)

strSQL = "SELECT * FROM links WHERE"
strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (LinkWord LIKE '%" & strKeyword & "%') ORDER BY
LinkName"

next

--
Henrik Overballe - Henno@e-mail.dk




Jakob Andersen (01-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 01-06-01 19:45

"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17e047$0$4211$ba624c82@nntp01.dk.telia.net...
> Her er kildekoden, måske du/I ka finde nogle fejl?

Er par stykker

> arrSogeord = Split(Request.Form("Keyword"), " ")
> For i = 0 to Ubound(arrSogeord)
>
> strSQL = "SELECT * FROM links WHERE"
> strSQL = strSQL & " (LinkName LIKE '%" & strKeyword & "%')"
> strSQL = strSQL & " OR (LinkWord LIKE '%" & strKeyword & "%') ORDER BY
> LinkName"

Prøv at udskrive din SQL streng så vil du se at den er gal:

Det skal se sådan her ud:

strSQL = "SELECT * FROM links"
arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)
If i = 0 Then
strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
"%')"
Else
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
End if
Next

strSQL = strSQL & " ORDER BY LinkName"

Hvilken database bruger du?

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "




Henrik Overballe (01-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 01-06-01 20:11

> Hvilken database bruger du?

Jeg bruger MS Access



well, nu returerner den da noget, hvis man skriver to ord - det da
fremskridt!....men den ignorer de efterfølgende ord man skriver!...hvis jeg
f.eks. skriver "århus asp php javascript", så returnerer den det samme, som
hvis der bare stod "århus"!

--
Henrik Overballe - Henno@e-mail.dk




Jakob Andersen (01-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 01-06-01 20:42

"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b17ea13$0$4208$ba624c82@nntp01.dk.telia.net...
> well, nu returerner den da noget, hvis man skriver to ord - det da
> fremskridt!....men den ignorer de efterfølgende ord man skriver!...hvis
jeg
> f.eks. skriver "århus asp php javascript", så returnerer den det samme,
som
> hvis der bare stod "århus"!

Du bruger jo OR og ikke AND, derfor behøves alle ordene ikke være der.

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Henrik Overballe (01-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 01-06-01 23:47


> Du bruger jo OR og ikke AND, derfor behøves alle ordene ikke være der.

Nu har jeg prøvet med AND istedet for OR, men så virker det som om at den
kun søger på LinkNavn og ikke på LinkWord, som er de reelle ord, som
identificere linket. Der kommer i hvert fald ikk ligeså mange links frem,
som hvis man brugte OR. Det skal der jo helst komme, når man søger på det
samme ord. Hvis du altså forstår mig


--
Henrik Overballe - Henno@e-mail.dk




Jakob Andersen (02-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 02-06-01 00:30

"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b181c81$0$4009$ba624c82@nntp01.dk.telia.net...
> Nu har jeg prøvet med AND istedet for OR, men så virker det som om at den
> kun søger på LinkNavn og ikke på LinkWord, som er de reelle ord, som
> identificere linket.

Hov min fejl jeg havde ikke set at du søgte på to felter.

strSQL = "SELECT * FROM links"
arrSogeord = Split(Request.Form("Keyword"), " ")
For i = 0 to Ubound(arrSogeord)
If i = 0 Then
strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
"%')"
Else
strSQL = strSQL & " OR (LinkName LIKE '%" & arrSogeord(i) & "%')"
'XX
strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
End if
Next

strSQL = strSQL & " ORDER BY LinkName"

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>



Henrik Overballe (02-06-2001)
Kommentar
Fra : Henrik Overballe


Dato : 02-06-01 12:37

> Hov min fejl jeg havde ikke set at du søgte på to felter.

Mere min fejl, jeg burde nok ha fortalt det

> strSQL = "SELECT * FROM links"
> arrSogeord = Split(Request.Form("Keyword"), " ")
> For i = 0 to Ubound(arrSogeord)
> If i = 0 Then
> strSQL = strSQL & " WHERE (LinkName LIKE '%" & arrSogeord(i) &
"%')"
> strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
>
> Else
> strSQL = strSQL & " OR (LinkName LIKE '%" & arrSogeord(i) & "%')"
> 'XX
> strSQL = strSQL & " OR (LinkWord LIKE '%" & arrSogeord(i) & "%')"
> End if
> Next
>
> strSQL = strSQL & " ORDER BY LinkName"

Men den kode synes jeg nu ikk ser helt fornuftig ud. I hvert fald bliver den
ikk godkendt og jeg får en fejl! Men se også lige en ekstra gang på den IF
sætning (if 1 = 0 then...), for hvis i = 0 så bliver der sagt "WHERE", men
det gør der ikk hvis i <> 0! Måske en fejl der? Men ellers så tager den
stadigvæk kun det første ord, som man skriver i søgefeltet og søger på det!
Så jeg tror at fejlen ligger et helt andet sted i den kode - jeg ved bare
ikk hvor!

--
Henrik Overballe - Henno@e-mail.dk




Jakob Andersen (02-06-2001)
Kommentar
Fra : Jakob Andersen


Dato : 02-06-01 14:19

"Henrik Overballe" <henno@vibybasket.dk> wrote in message
news:3b18d115$0$4010$ba624c82@nntp01.dk.telia.net...
> Men den kode synes jeg nu ikk ser helt fornuftig ud. I hvert fald bliver
den
> ikk godkendt og jeg får en fejl!

Du kunne ikke fortælle hvilken fejl?

> Men se også lige en ekstra gang på den IF
> sætning (if 1 = 0 then...), for hvis i = 0 så bliver der sagt "WHERE", men
> det gør der ikk hvis i <> 0! Måske en fejl der?

Nej, where skal jo kun med en gang!

> Men ellers så tager den
> stadigvæk kun det første ord, som man skriver i søgefeltet og søger på
det!
> Så jeg tror at fejlen ligger et helt andet sted i den kode - jeg ved bare
> ikk hvor!

Prøv at udskrive din SQL istedet for at eksekvere den.

--
Jakob Andersen
FAQ for webdesign gruppen på
<http://www.usenet.dk/oss/dk.edb.internet.webdesign>
"Det er rart at være vigtig, men det er vigtigere at være rar "



Søg
Reklame
Statistik
Spørgsmål : 177556
Tips : 31968
Nyheder : 719565
Indlæg : 6408865
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste