Avatar billede mettecarsten Nybegynder
09. oktober 2007 - 11:33 Der er 6 kommentarer og
3 løsninger

SQL-sortering

Hej eksperter

Jeg er gået kold i en formentlig simpel kode !

Jeg har en søgefunktion, hvor en bruger kan markere forskellige kriterier, f.eks. om bad eller køkken. Hvis ingen søgefelter afkrydset, skal der søges på alle annoncer. Hvis feltet bad f.eks. er afkrydset, skal der kun vises de annoncer, hvor værdien bad i databasen er lig med "checked". Noget med:

SQL = "Select * from hus where Kommune='" & Kommune & "'" & _
      if Request.form ("Bad") = "checked" then
      "AND Bad='" & checked & "'" & _
      end if
      osv.
      "ORDER BY Kommune"

Altså hvis en formular er markeret, skal den indgå i søgningen - ellers ikke.

Jeg håber ikke, at ovenstående er helt uforståeligt :-)
Avatar billede fennec Nybegynder
09. oktober 2007 - 11:36 #1
Du kan ikke bruge if sætninger inde i en streng (din &_) Du skal udbygge SQL variablen:

SQL = "Select * from hus where Kommune='" & Kommune & "' "
if Request.form ("Bad") = "checked" then
  sql = sql & "AND Bad='" & checked & "' "
end if
sql = sql &"ORDER BY Kommune "
Avatar billede sherlock Nybegynder
09. oktober 2007 - 11:38 #2
SQL = "Select * from hus where Kommune='" & Kommune & "'"

if Request.form ("Bad") = "checked" then
  SQL = SQL & " AND Bad=1"
end if

SQL = SQL & " ORDER BY Kommune"

Værdien for "bad=" har jeg gættet mig til :) Men jeg går ud fra, at det er en simpel markering, f.ex. 1/0 eller true/false
Avatar billede softspot Forsker
09. oktober 2007 - 11:40 #3
Du kan ikke lave betingelser inde midt i en strengsammensætning. Derfor skal du gøre følgende:

SQL = "Select * from hus where Kommune='" & Kommune & "' "

if Request.form("Bad") <> "" then
  SQL = SQL & " AND Bad = true "
end if

SQL = SQL & "ORDER BY Kommune"


Ovenstående kode antager at felterne du sammenligner med i databasen er ja/nej-felter (antager der er tale om en Access-database).
Avatar billede mettecarsten Nybegynder
09. oktober 2007 - 12:09 #4
Selvfølgelig - det virker :-)

I er alle inde på det rigtige og 3 hurtige svar, så I deler. Smid alle 3 et svar.

Tak for hjælpen.
Avatar billede sherlock Nybegynder
09. oktober 2007 - 12:16 #5
.
Avatar billede fennec Nybegynder
09. oktober 2007 - 12:19 #6
.o) <-- One Eyed Jack
Avatar billede softspot Forsker
09. oktober 2007 - 12:20 #7
Velbekomme :)
Avatar billede softspot Forsker
09. oktober 2007 - 12:20 #8
Ups! Man skal jo også markere svar :)
Avatar billede softspot Forsker
09. oktober 2007 - 12:33 #9
Tak for point :)
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