Avatar billede klodsmajor Nybegynder
03. december 2002 - 12:33 Der er 4 kommentarer og
1 løsning

problem med formular

Hej.

Jeg har lavet en formular med nogle rullemenuer hvori man kan vælge nogle værdier, som hentes i en db. Det fungere også fint. I en rullemenu kan man vælge bilmærke, i en anden model, en tredje antal km og en fjerde pris. Problemet opstår hvis man f.eks vælger volvo, s80, alle km og alle priser. Dvs. at der i db'en skal hentes alle volvo s80'er, uafhængig af km og pris. Det er her kæden hopper af.

Håber nogen kan hjælpe.

Min kode:

<%
Dim tybe1, maerke1, model1, km1, aargang1, pris1, privatforh1
tybe1 = Request.Form("tybe")
maerke1 = Request.Form("region")
model1 = Request.Form("model")
km1 = Request.Form("km")
aargang1 = Request.Form("aargang")
pris1 = Request.Form("pris")
privatforh1 = Request.Form("privatforh")


sql = "Select * From biler where tybe = '" & tybe1 & "' "
sql = sql & "And maerke = '" & maerke1 & "' "
sql = sql & "And model = '" & model1 & "' "
sql = sql & "And km <= " & km1 & " "
sql = sql & "And aargang = " & aargang1 & " "
sql = sql & "And pris <= " & pris1 & " "
sql = sql & "And privatforh = '" & privatforh1 & "';"

Set rs = Conn.Execute(sql)

%>
<table border="0" width="200" cellpadding="0" cellspacing="2">
    <% Do While Not rs.EOF %>
    <tr>
        <td><%=rs("maerke")%></td>
        <td><%=rs("model")%></td>
    </tr>
    <tr>
        <td><%=rs("km")%></td>
        <td><%=rs("aargang")%></td>
    </tr>
    <tr>
        <td><%=rs("pris")%></td>
        <td><%=rs("privatforh")%></td>
    </tr>
    <%
    rs.MoveNext
    Loop
    %>
</table>
Avatar billede Slettet bruger
03. december 2002 - 13:05 #1
hvad siger du sådan lidt mere konkret at problemet er + synnes ikke lige jeg kan tyde det ud fra din formulering
Avatar billede klodsmajor Nybegynder
03. december 2002 - 13:16 #2
Hvis man nu vælger volvo, s80, 50000km og 40000kr, og disse 4 oplysninger findes i db'en ud fra f.eks. 3 biler, så virker det fint, men det kunne jo sagtens tænke sig at man bare vælger volvo, s80 og så ellers er ligeglad med km og pris. og på den måde måske får flere volvoer at vælge imellem.

Håber at det er til at forstå :o)
Avatar billede Slettet bruger
03. december 2002 - 13:20 #3
det kan du jo vel bare omgåes med nogle almindelige if sætninger ?

altså:

if request.for("km") = "" then
'gør et eller andet
else
'gør som nu
end if
eller hvad ?
Avatar billede eagleeye Praktikant
03. december 2002 - 13:41 #4
Så blvier du nød til at bygge din WHERE del op med nogle if sætninger som tilføjer flere kolonne til WHERE delen hvis man søger på det.. Jeg antager at hvis "Alle" er valgt i et felt så har form input værdien Alle:


if tybe1 <> "Alle" then  '"Alle" kan rettes til den værdi som svare til alle!
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "tybe = '" & tybe1 & "' "
end if
if maerke1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "maerke = '" & maerke1 & "' "
end if
if model1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "model = '" & model1 & "' "
end if
if km1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "km <= " & km1 & " "
end if
if aargang1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "aargang = " & aargang1 & " "
end if
if pris1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "pris <= " & pris1 & " "
end if
if privatforh1 <> "Alle" then
  if SQLwhere <> "" then SQLwhere = SQLwhere & " and "
  SQLwhere = SQLwhere & "privatforh = '" & privatforh1 & "'"
end if



sql = "Select * From biler where " & SQLwhere & ";"
Set rs = Conn.Execute(sql)
Avatar billede klodsmajor Nybegynder
03. december 2002 - 14:43 #5
Det ser sgu ud til at virke....Tak for det.
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