Avatar billede kometen79 Nybegynder
21. juli 2004 - 14:54 Der er 5 kommentarer og
1 løsning

Sortering af input

Jeg er ved at lave et nyhedsbrev, hvor man har mulighed for at sortere hvem der skal modtage det:

Der er følgende sorterings variabler (formfelter):
- Region
- Postnr
- sex
- Usertype

Men hvordan laver jeg en dynamisk SQL sætning således den kan sortere på alle inputene?

Jeg har forsøgt med følgende, men det er vist noget være rod:

                    <%
    call opendb
           
                    if Request.Form("region") <> "" AND Request.Form("region") <> "alle" then
                        Region = Request.Form("region")
                            strRegion = "region = "&Region&""
                    end if
                    if Request.Form("sex") <> "" AND Request.Form("region") <> "alle" then
                        Sex = Request.Form("sex")
                            strSex = "AND sex = "&Sex&""
                    else
                        strSex = ""
                    end if
                   
                    region = Request.Form("region")
                    sex = Request.Form("sex")
                    post_nr = Request.Form("postnr")
                        call opentbl("SELECT * FROM login WHERE "&strRegion&" "&strSex&"", rs)
                            if not rs.eof then
                                do while not rs.eof           
                                    strEmail  = rs("email")       
                                        response.write "" & strEmail & " - Afsendt korrekt<br>"
                                      rs.MoveNext
                                Loop
                            else
                                Response.write("Der ingen brugere i den valgte kategori")
                            end if
               
    response.write "<br><br><b>Alle beskeder blev afsendt korrekt.</b>"
   
    call closetbl(rs)
%>

Er der en der kan give et kode eksempel på det?

Alle input felterne har en standard værdi der hedder alle, og i dette tilfælde skulle den jo gerne vælge f.eks. alle postnr osv.

Håber i kan hjælpe.
Avatar billede solja Nybegynder
21. juli 2004 - 15:06 #1
<%
  call opendb

    if Request.Form("region") <> "" AND Request.Form("region") <> "alle" then
      Region = Request.Form("region")
      strRegion = "region = " & Region
    else
      strRegion = "1=1"
    end if

    if Request.Form("sex") <> "" AND Request.Form("region") <> "alle" then
      Sex = Request.Form("sex")
      strSex = " AND sex = " & Sex
    else
      strSex = ""
    end if

    region = Request.Form("region")
    sex = Request.Form("sex")
    post_nr = Request.Form("postnr")

    call opentbl("SELECT * FROM login WHERE " & strRegion & strSex, rs)

    if not rs.eof then
      do while not rs.eof           
        strEmail  = rs("email")       
        response.write "" & strEmail & " - Afsendt korrekt<br>"
      rs.MoveNext
      Loop
    else
      Response.write("Der ingen brugere i den valgte kategori")
    end if
               
    response.write "<br><br><b>Alle beskeder blev afsendt korrekt.</b>"
   
    call closetbl(rs)
%>
Avatar billede kometen79 Nybegynder
21. juli 2004 - 15:24 #2
Det fungere umiddelbart, men hvis jeg kun vælger sex laver den fejl.

Hvad med de sidste variabler (usertype & postnr)?
Avatar billede kometen79 Nybegynder
21. juli 2004 - 15:25 #3
Fejlen ligger nok i at den så udskriver: " AND sex = " & Sex uden at der noget foran.
Avatar billede kometen79 Nybegynder
24. juli 2004 - 11:55 #4
Er der ikke nogen der kan hjælpe
Avatar billede kometen79 Nybegynder
28. juli 2004 - 21:23 #5
Det fungere ikke der hvor der er tale om tabeller med andre input end tal. Hvad skal der stå:

De her fungere ikke:
  - Sex
  - Status
  - Post_nr

<%
          call opendb

            if Request.Form("region") <> "" AND Request.Form("region") <> "alle" then
                  Region = Request.Form("region")
                      strRegion = " AND region = " & Region
                        else
                      strRegion = ""
                        end if

            if Request.Form("sex") <> "" AND Request.Form("sex") <> "alle" then
                  Sex = Request.Form("sex")
                      strSex = " AND sex = " & Sex
                        else
                      strSex = ""
                        end if
                       
            if Request.Form("post_nr") <> "" AND Request.Form("post_nr") <> "alle" then
                  post_nr = Request.Form("post_nr")
                      strpost_nr = " AND post_nr = " & post_nr
                        else
                      post_nr = ""
                        end if
                       
            if Request.Form("usertype") <> "" AND Request.Form("usertype") <> "alle" then
                  usertype = Request.Form("usertype")
                      strusertype = " AND usertype = " & usertype
                        else
                      usertype = ""
                        end if
                       
            if Request.Form("status") <> "" AND Request.Form("status") <> "alle" then
                  statu = Request.Form("status")
                      strstatu = " AND statu = " & statu
                        else
                      statu = ""
                        end if

            call opentbl("SELECT * FROM login WHERE Email <> '""'" & strRegion & strSex & strPost_nr & strUsertype & strstatu, rs)

                if not rs.eof then
                      do while not rs.eof         
                        strEmail  = rs("email")     
                            response.write "" & strEmail & " - Afsendt korrekt<br>"
                      rs.MoveNext
                          Loop
                              response.write ""&strSex&"<br>"
                            response.write ""&strregion&"" 
                            response.write "<br><br><b>Alle beskeder blev afsendt korrekt.</b>"
                        else
                            Response.write("Der ingen brugere i den valgte kategori")
                          end if
  call closetbl(rs)

%>
Avatar billede kometen79 Nybegynder
18. oktober 2005 - 10:56 #6
Lukker
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