Avatar billede donkazz Nybegynder
02. juni 2003 - 18:35 Der er 4 kommentarer og
1 løsning

Vis kun-funktion

Hej!

Jeg har en lille database over hvilke dvd'er, vhs'er og cd'er jeg har.
Jeg har på ASP-siden lavet en <form> med en <select>-menu, hvor når man klikker på enten VIS KUN: "VHS", "CD", "HD"  eller "DVD", så istedet for at vise ALLE entries i tabellen, viser den kun det valgte.
Den måde jeg har lavet det på, tror jeg i midlertidigt ikke er den smarteste!
Jeg har lavet sådan en her:

<%
    ElseIf Request.QueryString("mode") = "VHS" Then
    SortBy = Request.QueryString("sort")
    If SortBy = "" Then
      SortBy = "titel"
    End If
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("liste.mdb")
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open "SELECT * FROM Alle WHERE Medie = 'VHS' ORDER BY "& SortBy, Conn, 1, 3
    While Not RS.EOF
        Response.Write "<tr><td class='titel'>&nbsp;"& UCase(RS("Titel")) &"</td><td class='medie'>&nbsp;"& UCase(RS("Medie")) &"&nbsp;</td></tr>"
       
        RS.MoveNext
    Wend
    RS.Close
    Conn.Close
    Set RS = Nothing
    Set Conn = Nothing
%>

-for hvert af de 4 medier jeg har! Det er jo utroligt meget kode til sådan en lille funktion, så jeg ville høre om hvordan man kan optimere den, så det i sidste ende måske også blivere lettere at tilføje nye medier osv?
Avatar billede medions Nybegynder
02. juni 2003 - 18:39 #1
Du kunne jo fx. lave din SQL streng dynamisk, altså sådan her:

RS.Open "SELECT * FROM Alle WHERE Medie = '" & Request.QueryString("mode") & "' ORDER BY " & SortBy, Conn, 1, 3

//>Rune
Avatar billede medions Nybegynder
02. juni 2003 - 18:40 #2
Det vil sige alt i alt vil det komme til at se sådan her ud:

<%
    If Request.QueryString("mode") <> "" Then
    SortBy = Request.QueryString("sort")
    If SortBy = "" Then
      SortBy = "titel"
    End If
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("liste.mdb")
    Set RS = Server.CreateObject("ADODB.Recordset")
    RS.Open "SELECT * FROM Alle WHERE Medie = '" & Request.QueryString("mode") & "' ORDER BY " & SortBy, Conn, 1, 3
    While Not RS.EOF
        Response.Write "<tr><td class='titel'>&nbsp;"& UCase(RS("Titel")) &"</td><td class='medie'>&nbsp;"& UCase(RS("Medie")) &"&nbsp;</td></tr>"
       
        RS.MoveNext
    Wend
    RS.Close
    Conn.Close
    Set RS = Nothing
    Set Conn = Nothing
%>

//>Rune
Avatar billede donkazz Nybegynder
02. juni 2003 - 19:18 #3
Det virker jo perfekt!
Men når man bare kommer ind på siden, så skal den vise alle entries. Sådan som det er nu, så viser den ingen, før man vælger hvilket medie man vil se.
Hvordan løser man det?
Avatar billede donkazz Nybegynder
02. juni 2003 - 19:39 #4
nevermind! den har jeg selv løst! ;)

Takker
Avatar billede medions Nybegynder
02. juni 2003 - 23:26 #5
Anytime...
Thx 4 Poinz

//>Rune
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