Avatar billede kartolux Nybegynder
19. marts 2001 - 22:53 Der er 7 kommentarer og
1 løsning

SQL statement virker ikke

Nedenstående tager også poster med hvor feltet Accepted IKKE er lig \"Accepted\", som jeg vil have det. Der skal søges og kun medtages poster hvor søgeordet passer OG Accepted=\"Accepted\" - Hvad gør jeg forkert?

Kode:

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

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

\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT ArticleID, Category, Title, Tekst, Accepted FROM Articles WHERE Accepted=\'Accepted\' AND\"
strSQL = strSQL & \" (Category LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Title LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Tekst LIKE \'%\" & strKeyword & \"%\')\"

\' Skaber DSNLess forbindelse til DBen
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"ArticleDB.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(\"ArticleID\") & \"</td>\"
        Response.Write \"<td>\" & rs(\"Category\") & \"</td>\"
        Response.Write \"<td>\" & rs(\"Title\") & \"</td>\"
        Response.Write \"<td>\" & rs(\"Accepted\") & \"</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 Ekspert
19. marts 2001 - 22:55 #1
er feltet Accepted et tekst felt hvor der står acceptet eller hvad er det?
Avatar billede netsrac Praktikant
19. marts 2001 - 22:57 #2
Prøv med nogle logiske paranteser:

strSQL = \"SELECT ArticleID, Category, Title, Tekst, Accepted FROM Articles WHERE Accepted=\'Accepted\' AND (\"
strSQL = strSQL & \" (Category LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Title LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Tekst LIKE \'%\" & strKeyword & \"%\'))\"

Avatar billede kartolux Nybegynder
19. marts 2001 - 22:58 #3
Ja, feltet hedder Accepted og status (indhold) er nøjagtigt: Accepted
Avatar billede netsrac Praktikant
19. marts 2001 - 23:00 #4
Er det en true / false værdi eller er det et tekstfelt ?
Avatar billede keysersoze Ekspert
19. marts 2001 - 23:02 #5
men er det et tekstfelt?
Avatar billede kartolux Nybegynder
19. marts 2001 - 23:03 #6
Jeg er ked at det, keysersoze netsrac kom med løsningen...tak for din respons.

Tusind tak, netsrac svaret med paranteserne VIRKER og godkendes!
Avatar billede netsrac Praktikant
19. marts 2001 - 23:03 #7
Det var så lidt :-)

Håber du kan se logikken i de paranteser jeg har sat.
Avatar billede kartolux Nybegynder
19. marts 2001 - 23:08 #8
Ærligt talt, netsrac - jeg er SNOTDUM til programmering og SQL. Jeg tilpasser en søgemaskine, som er downloadet fra ActiveServerPages...

En dag - om 6896 points fatter jeg måske, hvad jeg laver :0)

Men paranteser kan jeg huske LIDT om fra skolen - noget før noget andet var det vistnok...
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