Avatar billede j-roar-h Nybegynder
14. oktober 2010 - 15:04 Der er 4 kommentarer og
1 løsning

Søgefunktion

Hej,

Jeg er ved at lave en hjemmeside hvor der skal være en søgefunktion.

Jeg har egentlig en søgefunktion, men jeg vil gerne have en der virker lidt bedre. Den jeg har nu finder ikke så meget som jeg ønsker. Jeg vil gerne have den skal søge på hele hjemmesiden og så finde alt hvad der indeholder det man søger på.

Håber i forstår mit spørgsmål.

På forhånd tak!

PS: min nuværende søgning ser ud som nedenstående, men jeg syntes ikke den virker så godt. Der udover syntes jeg det er ret besværligt at skulle indtaste alle de søgeord den skal kunne lede efter.

    <%
' Henter værdien fra soeg.htm
strKeyword = Trim(Request.Form("Keyword"))

If Len(strKeyword) = 0 Then
    ' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect("index.html")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, Gruppe, Indhold, Beskrivelse, Link FROM Tennis WHERE"
strSQL = strSQL & " (Gruppe LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Indhold LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Link LIKE '%" & strKeyword & "%')"

' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("search.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    ' Hvis der er fundet poster på søgningen
    Response.Write "<table border=0>"
    Response.Write "<tr><th style=""margin-right:10px;""""width: 200px;"">Gruppe</th><th>Indhold</th><th>Beskrivelse</th><th>Link</th></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("Gruppe") & "</td>"
        Response.Write "<td>" & rs("Indhold") & "</td>"
        Response.Write "<td>" & rs("Beskrivelse") & "</td>"
        Response.Write "<td><a href=""" & rs("Link") & """>klik her</a></td></tr>"
        rs.MoveNext
    Loop
    Response.Write "</table>"
Else
    ' Hvis der ikke er fundet poster på søgningen
    Response.Write "<p>Der er ikke fundet noget på denne søgning</p>"
End If

' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>
Avatar billede keysersoze Guru
14. oktober 2010 - 15:38 #1
Du fortæller intet om din tabel-struktur og heller ikke hvad det er du ikke mener virkser så godt så det er svært at komme med et egentligt bud - men hvis du vil søge på tværs af hele dit site og der ligger flere tabeller bag er letteste måde overhovedet at implementere en Google søgning. Er den ikke god nok, fx hvis du mangler kontrol eller ikke har tålmodighed nok til at Google får indekseret indhold så der kan søges noget frem, og du vil arbejde videre med ovenstående kode er der ingen anden udvej end at sætte alt det op du vil søge efter selvom det er besværligt (der er ingen der har sagt at programmering skal være let).

Mener du at en kode, der kan søge på tværs af alle tabeller vil blive for besværlig kunne du fx sætte et view op som samlede søgebare felter sammen til én "tabel" så du sparede en masse kode.
Avatar billede j-roar-h Nybegynder
15. oktober 2010 - 13:45 #2
Jeg er ikke helt med på hvad du mener med tabel-struktur?

Og heller ikke rigtigt det andet du skriver
Avatar billede keysersoze Guru
15. oktober 2010 - 18:17 #3
hvis du har én tabel er dit script fint og så må du forklare hvorfor du ikke mener det fungerer godt nok - har du mange tabeller må du enten foretage flere søgninger eller, hvis du mener det er for besværligt, integrere en ekstern søgemaskine som fx google.

Det sidste del af mit forslag går simpelt sagt påat lave et view hvori samtlige dine tabeller indgår så du kan søge i det i stedet for hvor enkelt tabel.
Avatar billede j-roar-h Nybegynder
05. december 2010 - 10:46 #4
Tak for hjælpen. Jeg har desværre ikke fået kikket på det efter, men du skal da have dine point - ligger du et svar?
Avatar billede keysersoze Guru
05. december 2010 - 11:01 #5
svar - men spørg endelig nærmere ind til det her hvis du kommer igang igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester