Avatar billede brevkasserne Nybegynder
07. april 2002 - 16:26 Der er 23 kommentarer og
1 løsning

God og enkel søgemaskine...

Er der ingen der kender en søgemaskine hvor man kan søge på flere ord og som er RIGTIG enkel, men go'???
Man skal kunne søge i en database...
Avatar billede medions Nybegynder
07. april 2002 - 16:39 #1
Avatar billede brevkasserne Nybegynder
07. april 2002 - 16:42 #2
Der kan man da ikke søge på flere ord samtidig, kan man?
Avatar billede medions Nybegynder
07. april 2002 - 16:43 #3
Hmm.. mener jeg man kan... men ellers er det jo bare at sætte 4 linje ind...

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 16:44 #4
Hva' er det for 4 linjer?
Avatar billede brevkasserne Nybegynder
07. april 2002 - 16:49 #5
er du der???
Avatar billede medions Nybegynder
07. april 2002 - 16:53 #6
Well, for 30 poinz, gider jeg desvære ikke skulle til at kode... - men det er jo bare noget i denne stil:

If Request.Form("sog") = "+ " Then
  SQL = "SELECT * FROM tabel WHERE kolonne LIKE '%" & strKeyword & "%' AND kolonne LIKE '%" & strKeyword & "%'
End If

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 16:56 #7
hvis jeg sætter pointene op så...
det skal være så man kan søge på så mange ord man vil, altså så den automatisk genere en eller anden kode...
Avatar billede brevkasserne Nybegynder
07. april 2002 - 17:36 #8
hmmm, nå...
Avatar billede medions Nybegynder
07. april 2002 - 17:39 #9
hm... her er noget der kan hjælpe dig på vej...:

<% Response.Buffer = True %>
<html><head>
<title>Søgeresultat</title>
</head><body>

<%
' 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("search.htm")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

If InStr(1, Text1.Text, "+") Then
    ' Opbygger en dynamisk SQL streng
    og her skal så ske hve du vil have søgemaskinen til....!
Else
    ' Opbygger en dynamisk SQL streng
    strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
    strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
End If

' Opbygger en dynamisk SQL streng
strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
strSQL = strSQL & " OR (Beskrivelse 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 "<p>Søgeresultat</p>"
    Response.Write "<table border=1>"
    Response.Write "<tr><th>Navn</th><th>Adresse</th><th>By</th><th>Beskrivelse</th></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("Navn") & "</td>"
        Response.Write "<td>" & rs("Adresse") & "</td>"
        Response.Write "<td>" & rs("Bynavn") & "</td>"
        Response.Write "<td>" & rs("Beskrivelse") & "</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
%>

</body></html>

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:09 #10
hvorfor opbygger du en dynamisk sql streng 2 gange?
Avatar billede medions Nybegynder
07. april 2002 - 18:14 #11
DOH.. *G* undskyld..  - den nederste skulle ikke ha' været der...!

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:19 #12
skulle man kunne søge på flere ord ved bare at adskille dem med et mellemrum?
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:23 #13
den melder denne fejl

Et objekt er obligatorisk: 'Text1'
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:28 #14
hvad gør denne linje

If InStr(1, Text1.Text, "+") Then
    ' Opbygger en dynamisk SQL streng
    og her skal så ske hve du vil have søgemaskinen til....!
Else

for hvis jeg sletter den ser den ud til at virke...

Det er også der den melder fejl...
Avatar billede medions Nybegynder
07. april 2002 - 18:28 #15
ahh.. undskyld.. hehe..


<% Response.Buffer = True %>
<html><head>
<title>Søgeresultat</title>
</head><body>

<%
' 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("search.htm")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

If InStr(1, strKeyword, "+") Then
    ' Opbygger en dynamisk SQL streng
    og her skal så ske hve du vil have søgemaskinen til....!
Else
    ' Opbygger en dynamisk SQL streng
    strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
    strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
End If
' 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 "<p>Søgeresultat</p>"
    Response.Write "<table border=1>"
    Response.Write "<tr><th>Navn</th><th>Adresse</th><th>By</th><th>Beskrivelse</th></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("Navn") & "</td>"
        Response.Write "<td>" & rs("Adresse") & "</td>"
        Response.Write "<td>" & rs("Bynavn") & "</td>"
        Response.Write "<td>" & rs("Beskrivelse") & "</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
%>

</body></html>

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:29 #16
næ, den kan vist ikke søge på flere ord af gangen
Avatar billede medions Nybegynder
07. april 2002 - 18:29 #17
Den søger i strengen strKeyword, og melder ud hvis det findes + i strengen...

If InStr(1, strKeyword, "+") Then
    ' Opbygger en dynamisk SQL streng
    og her skal så ske hve du vil have søgemaskinen til....!
Else


//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:31 #18
den virker med et ord af gangen eller en sætning

hvis jeg fx søger på asp kode kan den godt finde asp kode, men ikke hvis jeg søger på kode asp som den gerne måtte kunne...
Avatar billede medions Nybegynder
07. april 2002 - 18:31 #19
NEJ.. men det er jo det du skal kode den til.. jeg ved jo ikke hvad det er du vil ha' den til præcist, og jeg kender ikke dit oprindelige script, samt dine tabeller...! - og hvis jeg laver det, har du jo oxo fået en hel søgemaskine kodet af mig.. og det er et projekt for sharkers!

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:33 #20
ok, lige et sidste spørgsmål. hvis jeg søger med et + i laver den fejl. hvorfor det?
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:36 #21
og hvis du kigger på mit spørgsmål så gik det ud på en søgemaskine hvor man netop kunne søge på flere ord, det var ligesom ideen med det...
Avatar billede medions Nybegynder
07. april 2002 - 18:36 #22
fordi at der ikke sker andet en det tekst jeg har skrevet... prøv med dette:
<% Response.Buffer = True %>
<html><head>
<title>Søgeresultat</title>
</head><body>

<%
' 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("search.htm")
Else
    ' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,"'","''")
End If

If InStr(1, Text1.Text, "+") Then
    ' Opbygger en dynamisk SQL streng
    With Response
        .Write("<script language='VBScript'>")
        .Write("MsgBox('Hejsa')")
        .Write("</script")
    End With
Else
    ' Opbygger en dynamisk SQL streng
    strSQL = "SELECT ID, Navn, Adresse, Bynavn, Beskrivelse FROM Kunder WHERE"
    strSQL = strSQL & " (Navn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Adresse LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Bynavn LIKE '%" & strKeyword & "%')"
    strSQL = strSQL & " OR (Beskrivelse LIKE '%" & strKeyword & "%')"
End If

' 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 "<p>Søgeresultat</p>"
    Response.Write "<table border=1>"
    Response.Write "<tr><th>Navn</th><th>Adresse</th><th>By</th><th>Beskrivelse</th></tr>"
    Do While Not rs.EOF
        Response.Write "<tr><td>" & rs("Navn") & "</td>"
        Response.Write "<td>" & rs("Adresse") & "</td>"
        Response.Write "<td>" & rs("Bynavn") & "</td>"
        Response.Write "<td>" & rs("Beskrivelse") & "</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
%>

</body></html>

//>Rune
Avatar billede brevkasserne Nybegynder
07. april 2002 - 18:38 #23
hmm, ok... tak for svaret...
Avatar billede medions Nybegynder
07. april 2002 - 18:40 #24
Thx 4 Poinz
//>Rune
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