Avatar billede dingkee Nybegynder
26. april 2001 - 14:54 Der er 35 kommentarer og
2 løsninger

Udtræk fra database

Jeg skal udtrække en hel liste i en database og putte det i en drop down boks.
Så skal den først liste alle dem hvor kolonnen \"Transfer\" = 1 derefter dem hvor kolonnen = 2 osv.
Hvordan gør jeg det??
Avatar billede webbe Nybegynder
26. april 2001 - 15:06 #1
Du skal først gruppere i din select sætning:

\'\"SELECT * FROM table_name GROUP BY Transfer ASC\"\'

Derefter laver du din dropdown:

<select name=\"transfer\">
  <option selected value=\"\">Vælg transfer</option>
<%
do until rs.EOF
%>
      <option value=\"<%=rs(\"transfer\")%>\"><%=rs(\"transfer\")%></option>
<%
rs.MoveNext
loop
%>
</select>
Avatar billede cape Nybegynder
26. april 2001 - 15:08 #2
<select name=\"Language\" id=\"Language\">
<%While Not Rs.EOF
Rs.Filter = \"Transfer = \'\" & 1 & \"\'\"
Response.Write \"<option value=\"\"\" & Rs.Fields(\"Tranfer\").Value & \"\"\"\"
Response.Write \" selected\"
Response.Write \">\" & Server.HTMLEncode(RsLanguages.Fields(\"NAME\").Value) & \"</option>\"
RsLanguages.MoveNext()
Wend
%>
</select>

Avatar billede webbe Nybegynder
26. april 2001 - 15:13 #3
Hovsa - din select sætning skal være:

\"SELECT * FROM table_name ORDER BY Transfer ASC\"

Avatar billede dingkee Nybegynder
26. april 2001 - 15:20 #4
Er du sikker på at der er ASC??
Avatar billede webbe Nybegynder
26. april 2001 - 15:21 #5
Den select sætning jeg har skrevet er ren SQL

ASC = Sorterer stigende (1, 2, 3, 4...)
DESC = Sorterer faldende (4, 3, 2, 1...)

Så ja....hvis du vil har poster med transfer værdi = 1 listet først, så er det ASC (Ascending).
Avatar billede webbe Nybegynder
26. april 2001 - 15:22 #6
Select-sætninger i SQL fungerer perfekt sammen med alt andet ASP.
Avatar billede dingkee Nybegynder
26. april 2001 - 15:27 #7
Det er så fordi mit ikke er sql, kan du skrive følgende om:
    <%
  Set Conn = Server.CreateObject(\"ADODB.Connection\")
  Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"databasen.mdb\")
    Set RS = Conn.Execute(\"SELECT * FROM soegkate ORDER BY Transfer ASC\")
    If Not RS.EOF Then
        %>
        <%
        Do While Not RS.EOF
            %>

            <option name=\"kat\" value=\"<%= RS(\"ID\") %>\">
            <%If RS(\"Parent\") > 0 Then%> -    
            <% else %>
            <% end if%>   
            <%= RS(\"Navn\") %></option>
       
                            <%
            If RS(\"Billed\") <> \"\" Then
                %>
                - <%= RS(\"Billed\") %><br>
                <%
            End If
            RS.MoveNext
        Loop
    End If
RS.close
Set RS = nothing
%>
Avatar billede webbe Nybegynder
26. april 2001 - 15:31 #8
Hvad melder den af fejl???
Avatar billede dingkee Nybegynder
26. april 2001 - 15:38 #9
det er jo fordi jeg ikke køre sql
Avatar billede webbe Nybegynder
26. april 2001 - 15:48 #10
Det har ikke noget med det at gøre!

SQL er bare en god måde at lave select-sætninger på!

Men prøv at lave din drop-down boks som jeg skrev tidligere!
Avatar billede perla Nybegynder
26. april 2001 - 17:02 #11
SQL er en syntaks for databaser. Både MySQL, MS SQL server, Access kan SQL syntaks, Så du har ingen problemer  hvis du kører Access

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 21:44 #12
Den sortere det bare ikke ordenligt
Avatar billede perla Nybegynder
26. april 2001 - 21:49 #13
Sikkert fordi du har defineret transfer som et tekstfelt. Dvs du får 1 10 2 21 osv.
Lav det om til et talfelt så vil det virke

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 21:56 #14
Den tager nemlig 1 10 2 21 osv.
Men transfer er sat som tal i databasen
Avatar billede perla Nybegynder
26. april 2001 - 22:01 #15
Det kan ikke lade sig gøre det må være detineret som tekstfelt, men prøv at sendedatabasen til mig så skal jeg se efter

-Per
Avatar billede perla Nybegynder
26. april 2001 - 22:02 #16
Ups. Glemte mail adresse PerLA@mail.tele.dk
Avatar billede dingkee Nybegynder
26. april 2001 - 22:04 #17
så er den sendt
Avatar billede perla Nybegynder
26. april 2001 - 22:10 #18
Den sorterer da fint den kolonne du kikker på er ID og den er selvfølgelig sorteret anderledes

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 22:12 #19
Kan du også få den til at sortere ordenligt på en hjemmeside??
Avatar billede perla Nybegynder
26. april 2001 - 22:14 #20
Men du har også en transfer2, skal den ogsså sorteres ? Altså sorterering efter transfer,transfer2 ? Hat du et link eller siden ?

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 22:15 #21
Det er denne asp kode jeg bruger:
<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database/databasentildingkee.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC\"
    set RS = conn.execute( strSQL )
    do while not rs.eof
        Response.write \"<option name=\'kat\' value=\'\" & rs(\"ID\") & \"\'>\"
      If rs(\"Parent\") > 0 Then \'Lad ingen være valgt først
        Response.write \" - \"
      Else
      End If
        Response.write \" \" & rs(\"Navn\") & \"</option>\"
        rs.movenext
    loop
%>
Avatar billede perla Nybegynder
26. april 2001 - 22:19 #22
Ja men den sorter jo fint hvis du istedet for vælger feltet transfer, nu bruger du jo id

rs(\"ID\")  -> rs(\"transfer\")

-Per
Avatar billede perla Nybegynder
26. april 2001 - 22:21 #23
Eller skal du lave din \"order by transfer\" om til \"order by id\"

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 22:21 #24
hvor mener du helt præcist???
Avatar billede perla Nybegynder
26. april 2001 - 22:23 #25
Du har bedt om at den sorterer efter transfer, men i koden udskriver du ID. Dvs det ser rode ud da ID ikke er sorteret.

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 22:24 #26
den skal sortere det efter Transfer, Id bruges til at sende vidre og gemme et andet sted i databasen
Avatar billede perla Nybegynder
26. april 2001 - 22:26 #27
Prøv den kode istedet

<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database/databasentildingkee.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC\"
    set RS = conn.execute( strSQL )
    do while not rs.eof
        Response.write \"<option name=\'kat\' value=\'\" & rs(\"transfer\") & \"\'>\"
      If rs(\"Parent\") > 0 Then \'Lad ingen være valgt først
        Response.write \" - \"
      Else
      End If
        Response.write \" \" & rs(\"Navn\") & \"</option>\"
        rs.movenext
    loop
%>

-Per
Avatar billede dingkee Nybegynder
26. april 2001 - 22:30 #28
hjælper ikke på det
Avatar billede perla Nybegynder
26. april 2001 - 23:28 #29
Har lige sendt dig en løsning

-Per
Avatar billede dingkee Nybegynder
28. april 2001 - 09:56 #30
Det du har gjordt per, det er jo at dele dem op i flere dropdownbokse det skal kun være i en.
Avatar billede perla Nybegynder
28. april 2001 - 11:15 #31
ok,

<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC\"
    set RS = conn.execute( strSQL )
    value=1
    Response.write\"<select name=\'kat\'>\"
    Response.write \"<option selected>-- Ingen --</option>\"
    do while not rs.eof
        \'do while Value = rs(\"transfer\")
          Response.write \"<option>\" & rs(\"Navn\") & \"</option>\"
          Response.write \" \"  & \"\" 
          rs.movenext
        \'loop
    loop
    Response.write \"</select>\"
%>

-Per
Avatar billede dingkee Nybegynder
28. april 2001 - 11:36 #32
Det virker altså stadig ikke, prøv at se her:
http://go4net.adsl.dk/dingkee/set.asp?mode=nylink
Avatar billede perla Nybegynder
28. april 2001 - 11:41 #33
Er det du har lavet ikke godt nok, er da lidt i tvivl om hvad det egentlig er du vil have

kan godt lave så den ser ud som din, men det giver da igen mening da du allerede har den, eller hva\' ?

-Per
Avatar billede dingkee Nybegynder
28. april 2001 - 12:04 #34
Prøv at sammenligne dropdownboksen med databasen.
Hardware, spil, grafik, kommer før EDB og Internet
Avatar billede perla Nybegynder
28. april 2001 - 12:46 #35
<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC, id\"
    set RS = conn.execute( strSQL )
    Value=\"999\"
    Response.write \"<select name=\'kat\'>\"
    Response.write \"<option selected> </option>\"
    do while not rs.eof
      Response.write Value & RS(\"Transfer\")
      if Value=RS(\"transfer\") Then
        Fyld=\"-\"
      Else
        Fyld=\"\"
      End If
      Response.write \"<option>\" & Fyld & rs(\"Navn\") & \"</option>\"
      IF not rs.eof Then Value=Rs(\"transfer\")
      rs.movenext
    loop

%>

-Per
Avatar billede dingkee Nybegynder
28. april 2001 - 12:50 #36
Fedt nu virker det.
Tak
Avatar billede perla Nybegynder
28. april 2001 - 13:01 #37
Der er dog fælder hvis du skal oprette nye kategorier. Hovedkategorien skal have lavere id værdi end sine egne underkategorier. Lavede lige om så du også fik værdi på

<%
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"Driver={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"database.mdb\")
    strSQL = \"SELECT * FROM soegkate ORDER BY Transfer ASC, id\"
    set RS = conn.execute( strSQL )
    Value=\"999\"
    Response.write \"<select name=\'kat\'>\"
    Response.write \"<option selected> </option>\"
    do while not rs.eof
      Response.write Value & RS(\"Transfer\")
      if Value=RS(\"transfer\") Then
        Fyld=\"-\"
      Else
        Fyld=\"\"
      End If
      Response.write \"<option value=\" & RS(\"id\") & \">\" & Fyld & rs(\"Navn\") & \"</option>\"
      Value=Rs(\"transfer\")
      rs.movenext
    loop

%>

-Per
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