Avatar billede zantiago Nybegynder
31. december 2002 - 16:03 Der er 12 kommentarer og
1 løsning

Forskellige søgninger

Hej Eksperter!

Jeg har lidt bøvl med min søgemaskine.

Jeg laver flere forskellige søgninger på en side, men den samler bare alle søgninger.

Eks:

Søgning på "biler"

Der er en nyhed, hvor ordet biler indgår. Under andmeldelser er der ingen.

Men resultatet ser sådan her ud:

Nyheder:
Nyhed om biler

Anmeldelser:
Nyhed om biler


Koden er her -->

set objrec_anmeldelse = server.createobject ("ADODB.recordset")

SQL1 = "SELECT Id, Titel, format, Tekst1, Tekst2 FROM [tekster] WHERE type = 'anmeldelse' AND"
SQL1 = SQL1 & " (Titel LIKE '%" & strKeyword & "%')"
SQL1 = SQL1 & " OR (Format LIKE '%" & strKeyword & "%')"
SQL1 = SQL1 & " OR (Tekst1 LIKE '%" & strKeyword & "%')"
SQL1 = SQL1 & " OR (Tekst2 LIKE '%" & strKeyword & "%')"

objrec_anmeldelse.open sql1, Conn, 3, 3, 1
%>

Dem har jeg så et par stykker af, med forskellige WHERE sætninger..

Håber i kan hjælpe

/Bruhn
Avatar billede aspbuilder Nybegynder
31. december 2002 - 16:20 #1
Jeg ville lave det med flere loops under hinanden f.eks.

SQL1 = SELECT * FROM nyheder WHERE tekst LIKE '%" & strKeyword & "%'
Set rs1 = objrec_anmedlese

og så kommer loopet her

så kan du lave flere med de søgefunktioner nedenunder

SQL2 = SELECT * FROM anmeldelser WHERE tekst LIKE '%" & strKeyword & "%'
Set rs2 = objrec_anmedlese

Hvis du forstår, hvad jeg mener
Avatar billede zantiago Nybegynder
31. december 2002 - 16:45 #2
Problemet er at alt ligger i samme tabel, det er ligesom den ikke fatter, WHERE type = 'anmeldelse'
Avatar billede hossein Nybegynder
31. december 2002 - 20:32 #3
Type er et reserveret ord hvis du bruger den skal skrives på den måde: [type].

SQL1 = "SELECT Id, Titel, format, Tekst1, Tekst2 FROM [tekster] WHERE [type] = 'anmeldelse' AND"


vh    Hossein
Avatar billede zantiago Nybegynder
01. januar 2003 - 19:50 #4
Ok tak - Tester lige
Avatar billede zantiago Nybegynder
01. januar 2003 - 19:53 #5
Nope - Sorry Hossein.. Virker stadig ikke... www.games.zantiago.com - prøv at søg.. Det er alt for mærkeligt
Avatar billede hossein Nybegynder
01. januar 2003 - 21:10 #6
send search siden + nogle rækker i din db så vil jeg kigge på det, hvis du vil.
mach3@get2net.dk

Er type altid = anmeldelse? efter din sql sætning den er?
Bil findes også i billede, derfor den henter det hele, du skal lave sådan at den matcher indtastede ord, er det ikke det som du vil have?
Avatar billede zantiago Nybegynder
01. januar 2003 - 21:29 #7
Mail Sendt
Avatar billede hossein Nybegynder
01. januar 2003 - 23:49 #8
ok, jeg har kigget på det. Hvis du vil have at den henter eksakte ord, så skal du sammenligne længden af strKeyword med indholdet af et felt i din tabel. Dette felt kalder du fx KeyWord også skriver du et ord som er den mest relevante for den record. fx i min tabel har jeg nogle felter: URL, Discreption, datesubmitted og Name. Hvis det er
      URL                Discription        Name
www.microsoft.com    sælger software...    Microsoft

så hvis brugeren søger microsoft så hentes feltet.

<%
strKeyword = trim(Request.Form("search"))


If strKeyword <> "" Then
    Dim strConnect, SQL
    Dim RS
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("search.mdb") & ";"

    SQL = "SELECT * FROM Sites WHERE INSTR(Sites.Description,'" & strKeyword & "')"

    Set RS = Server.CreateObject("Adodb.Recordset")
    RS.Open SQL,strConnect

    Do Until RS.EOF
        If Len(strKeyword) >= 1 AND strKeyword = Lcase(RS("Name")) Then
            Response.Write "<A HREF='http://" & RS("URL") & "'>" & RS("URL") &"</A> - " & RS("Name") & "<BR>"
            Response.Write RS("Description") & "<BR><BR>"
        End If

        'If Len(strKeyword) <= 0 Then
        '    Response.Write "<A HREF='" & RS("URL") & "'>" & RS("URL") &"</A> - " & RS("Name") & "<BR>"
        '    Response.Write RS("Description") & "<BR><BR>"
       
        'End If
   
        RS.MoveNext
    LOOP
   
    RS.Close
   
End If

%>

Håber det hjælper.

vh      Hossein
Avatar billede zantiago Nybegynder
01. januar 2003 - 23:51 #9
Tak for det - Jeg får nok først kigget på det i morgen.. Vender lige tilbage..
/Bruhn
Avatar billede hossein Nybegynder
02. januar 2003 - 01:05 #10
Jeg har kigget en gang til, jeg ved ikke hvordan man vælger typerne, men jeg gætter på at du har bestemmet i din tabel at hver record har en type hvis det er det så jeg legede lidt med sql sætningen, det er bare ()erne:

SQL = "SELECT * FROM tabel1 WHERE (([type] = 'e') and (tekst1 = '" & strKeyword & "' or tekst2 = '" & strKeyword& "')) "

den henter den eksakte tekst hvor brugeren indtaster fordi jeg brugte = og ikke like. Så hvis det er ikke i den tilhørende type så udskrives hellere ikke.
Avatar billede zantiago Nybegynder
03. januar 2003 - 16:58 #11
Jeg havde glemt at hente type og kunne derfor ikke sortere efter den - TAK FOR HJÆLPEN!!!
Avatar billede hossein Nybegynder
03. januar 2003 - 20:00 #12
Jeg forstår ikke dit svar?!!: "kunne derfor ikke sortere efter den" sortering var ikke dit spørgsmål!!
Avatar billede zantiago Nybegynder
03. januar 2003 - 20:26 #13
Der var flere ting der var i vejen - Men løsningen blev at lavede en masse if sætninger - Plus at hente [Type] i SELECT sætningen!! Der var jo ik lavet en SELECT * - men SELECT Id, Titel, format, Tekst1 osv... Der havde vi glemt TYPE..!!
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

IT-JOB