16. november 2003 - 10:48Der er
5 kommentarer og 1 løsning
SQL forskelligt antal variable i OR kriterie
Jeg har virkeligt et problem med en SQl med et OR kriterie, hvor antal af kriterier er afhængig af bruger input.
Brugerens input er checkbox som enten kan have værdien tom eller 1. Er værdien tom skal den ikke indgå i søgningen Er værdien 1 skal den indgå i søgningen Der er 5 checkbox, som er uafhængige af hinanden og som henviser til 5 forskellige felter i databasen.
Det som volder problemer er delen i str_soeg_box, hvor det hele kokser såfremt box et ikke vælges.
IF Request.Form("box1") = 1 then str_box1 = " box1 = 1 " end if IF Request.Form("box2") = 1 then str_box2 = " OR box2 = 1 " end if IF Request.Form("box3") = 1 then str_box3 = " OR box3 = 1 " end if IF Request.Form("box4") = 1 then str_box4 = " OR box4 = 1 " end if IF Request.Form("box5") = 1 then str_box5 = " OR box5 = 1 " end if str_soeg_box = " AND (" & str_box1 & str_box2 & str_box3 & str_box4 & str_box5 & ")"
strSQL = "Select Count (*) AS maaned from tabeldata Where Month(dato) = " & maaned_nummer & " AND Year(dato) = " & aar & str_soeg_box
Med en union select vil skabe samme problem, det samme vil et array vel også.
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Slettet bruger
16. november 2003 - 12:03#1
IF Request.Form("box1") = 1 then str_box = " box1 = 1 " end if IF Request.Form("box2") = 1 then str_box = str_box & " OR box2 = 1 " end if IF Request.Form("box3") = 1 then str_box = str_box & " OR box3 = 1 " end if IF Request.Form("box4") = 1 then str_box = str_box & " OR box4 = 1 " end if IF Request.Form("box5") = 1 then str_box = str_box & " OR box5 = 1 " end if
Du kan prøve at tilføje lidt mere tik if sætningerne så det med box1->box4 er en streng. Prøv sådan her så tilføjes OR imellem hvis en før er valgt. Samt det AND kommer kun med hvis der er valgt en box.:
str_box_SQL = "" IF Request.Form("box1") = 1 then str_box_SQL = str_box_SQL & " box1 = 1 " end if IF Request.Form("box2") = 1 then IF str_box_SQL <> "" then str_box_SQL = str_box_SQL & "OR" str_box_SQL = str_box_SQL & " box2 = 1 " end if IF Request.Form("box3") = 1 then IF str_box_SQL <> "" then str_box_SQL = str_box_SQL & "OR" str_box_SQL = str_box_SQL & " box3 = 1 " end if IF Request.Form("box4") = 1 then IF str_box_SQL <> "" then str_box_SQL = str_box_SQL & "OR" str_box_SQL = str_box_SQL & " box4 = 1 " end if IF Request.Form("box5") = 1 then IF str_box_SQL <> "" then str_box_SQL = str_box_SQL & "OR" str_box_SQL = str_box_SQL & " box5 = 1 " end if
if str_box_SQL <> "" then str_soeg_box = " AND (" & str_box_SQL & ")" else str_soeg_box = "" end if
Synes godt om
Slettet bruger
16. november 2003 - 12:06#3
nåh.. sådan... jeg forstod ikke lige problemet...
IF Request.Form("box1") = 1 then str_box = " box1 = 1 " end if IF Request.Form("box2") = 1 then IF str_box <> "" then str_box = str_box & " OR box2 = 1 " else str_box = " box2 = 1 " end if end if IF Request.Form("box3") = 1 then IF str_box <> "" then str_box = str_box & " OR box3 = 1 " else str_box = " box3 = 1 " end if end if IF Request.Form("box4") = 1 then IF str_box <> "" then str_box = str_box & " OR box4 = 1 " else str_box = " box4 = 1 " end if end if IF Request.Form("box5") = 1 then IF str_box <> "" then str_box = str_box & " OR box5 = 1 " else str_box = " box5 = 1 " end if end if
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.