Hallå! Du kan antingen bygga satsen dynamiskt eller ha två sqlsatser, beroende på vilket värde du vill kunna utelämna. ojoj nu hängde jag inte riktigt med... Du kan göra så här: det lättaste är väl såhär? Det kaske är enkelt. Men inneffektivt att ta med "tomma" villor. Jag testade att göra så här men det funkade inte: Du kanske ska prova att öppna recordsetet. hehehe så sant så sant...ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&motiv=
Detta är en fortsättning av min förra fråga...
Ifall man ska använda sig av queststrings och vill kunna skriva tex som här nedanför:
visabild.asp?natur=utomhus&motiv=djur
Då kan ju sql:en se ut så här:
<code>
SQL="Select * From bilder WHERE natur='" & Request.Querystring("natur") & "' AND motiv='" & Request.Querystring("motiv") & "'"
</code>
Men ifall jag vill att man ska kunna utelämna att skriva motiv och bara skriva så här: visabild.asp?natur=utomhus
och även bara kunna skriva:
visabild.asp
då är min fråga hur gör man då? Kan man ha nått defaultvärde som den anropar ifall man bara skriver som ovanför?Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
Kontrollera din motiv variabel, finns den (innehåller den ett värde) så använder du den längre sqlsträngen, annars tar du :
<code>
SQL="Select * From bilder WHERE natur='" & Request.Querystring("natur") & "'"
</code>Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
vad skulle man göra?
(måste säga att du hade den bästa "signaturen" jag sett på länge! så sjukt sant! :-))Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
<code>
Dim strNatur
Dim strMotiv
Dim strWhere
strNatur = "" & Request.Querystring("natur")
If Len(strNatur) Then
strWhere = " AND natur = '" & Replace(strNatur, "'", "''") & "'"
End If
strMotiv = "" & Request.Querystring("motiv")
If Len(strMotiv) Then
strWhere = strWhere & " AND motiv = '" & Replace(strMotiv, "'", "''") & "'"
End If
If Len(strWhere) Then
strSQL = "SELECT * FROM bilder WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM bilder"
End If
</code>Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
<code>
SQL="Select * From bilder WHERE natur LIKE '%" & Request.Querystring("natur") & "%' AND motiv LIKE '%" & Request.Querystring("motiv") & "%'"
</code>
om det inte står nått i querystringen så tar den alltSv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
<code>
<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("nyhet/db/news.mdb")&";"
Dim strSektion
Dim strKategori
Dim strWhere
strSektion = "" & Request.Querystring("sektion")
If Len(strSektion) Then
strWhere = " AND sektion = '" & Replace(strSektion, "'", "''") & "'"
End If
strKategori = "" & Request.Querystring("kategori")
If Len(strKategori) Then
strWhere = strWhere & " AND kategori = '" & Replace(strKategori, "'", "''") & "'"
End If
If Len(strWhere) Then
strSQL = "SELECT * FROM news WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM news"
End If
count = 0
If RecSet.EOF Then%>
<tr>
<td>Inga nyheter inlagda!</td>
</tr>
<%Else
Do Until count = 5 OR RecSet.EOF
%>
</code>
Någon som ser vad jag gjort för fel?
fick nämligen detta felmess:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: 'RecSet'
/main5.asp, line 36
rad 36 är:
If RecSet.EOF Then%>Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
<code>
<%
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("nyhet/db/news.mdb")&";"
Dim strSektion
Dim strKategori
Dim strWhere
strSektion = "" & Request.Querystring("sektion")
If Len(strSektion) Then
strWhere = " AND sektion = '" & Replace(strSektion, "'", "''") & "'"
End If
strKategori = "" & Request.Querystring("kategori")
If Len(strKategori) Then
strWhere = strWhere & " AND kategori = '" & Replace(strKategori, "'", "''") & "'"
End If
If Len(strWhere) Then
strSQL = "SELECT * FROM news WHERE " & Mid(strWhere, 6)
Else
strSQL = "SELECT * FROM news"
End If
Set RecSet = Server.CreateObject("ADODB.Recordset")
RecSet.Open strSQL, Con
If RecSet.EOF Then
%>
<tr>
<td>Inga nyheter inlagda!</td>
</tr>
<%
Else
Do Until count = 5 OR RecSet.EOF
RecSet.MoveNext
Loop
End If
RecSet.Close
Set RecSet = Nothing
Con.close
Set Con=Nothing
%>
</code>Sv: ytterligare en Queststringfråga (sql, visabild.asp?natur=utomhus&mo
Märks att man är lite dåsig en dag som denna. :-)