Avatar billede ch007 Nybegynder
11. juni 2005 - 11:11 Der er 10 kommentarer og
1 løsning

Sortér efter udtræk fra DB

Hvis jeg trækker oplysninger ud fra en db, gemmer dem i konstanter så som fx:

Konstant1 = RS("Værdi1")
Konstant2 = RS("Værdi2")
Konstant3 = RS("Værdi3")
Konstant4 = RS("Værdi1") + RS("Værdi2")

Kan jeg så vælge at skrive dem ud på siden efter størrelse...

Lad os sige at de er følgende:

Konstant1 = 4
Konstant2 = 1
Konstant3 = 3
Konstant4 = 4 + 1 (=5)

Så vil jeg gerne have dem sortéret efter størrelse således:

Konstant4
Konstant1
Konstant3
Konstant2

Kan det lade sig gøre?

Det må være noget med at køre en løkke der skrive på siden og tager den største konstant-værdi først.

Jeg kan ikke blot sortér i udtrækket! Da I kan se at Konstant4 er to værdier lagt sammen...

Jeg kan heller ikke blot gøre det med
If Konstant1 > Konstant2 Then...
For jeg har måske 100+ udtræk
Avatar billede medions Nybegynder
11. juni 2005 - 12:00 #1
Jeg tror din løsning vil være at smide dem ned i et array, og så lave sortering på arrayet istedet for!

//>Rune
Avatar billede ch007 Nybegynder
11. juni 2005 - 13:00 #2
Lyder sikkert rigtig - kan du skrive hvordan jeg gør. Jeg er ikke så meget hjemme i array mv. Al min programmering er selvlært...
Avatar billede busschou Praktikant
11. juni 2005 - 13:01 #3
du kan gøre det i sql
Avatar billede ch007 Nybegynder
11. juni 2005 - 13:06 #4
Hvordan?
Avatar billede busschou Praktikant
11. juni 2005 - 13:13 #5
kan ved nærmere eftertanke godt se du vist ikke kan i sql :o(
Avatar billede busschou Praktikant
11. juni 2005 - 13:22 #6
Jeg kender ikke en sortering på array i hovedet, men når der nu kun er fire elementer mon så ikke lige det går med en bublesort ala følgende utestet:
----
arrK = Array(k1,k2,k3,k4)
for i=0 to 2
  for j=1 to 3
    if arrK(i) < arrK(j) then
      temp = arrK(j)
      arrK(j) = arrK(i)
      arrK(i) = temp
    end if
  next
next
---
Så burde arrK(0) blive den største og arrK(3) den mindste
Avatar billede ch007 Nybegynder
11. juni 2005 - 13:39 #7
Der er 100+ elementer... Det skrev jeg tidl
Avatar billede busschou Praktikant
11. juni 2005 - 14:17 #8
ok jeg troede du hev 100 rækker ud af tabellen, hvor du ønskede fire konstanter fra hver række.
Det ville jo give dig 100 arrays med hver fire elementer
Bubblesort er ikke super hurtig til en tons af elementer men til hundrede går det jo nok
Du bør kunne gøre sådan her cirka
---
set rs = conn.execute("select * from tabel")
do while not rs.eof
  arrK = Array(rs("værdi1"),rs("værdi2"),rs("værdi3"),rs("værdi3")+rs("værdi1"), osv osv)
  for i=0 to ubound(arrK)-1
    for j=1 to ubound(arrK)
      if arrK(i) < arrK(j) then
        temp = arrK(j)
        arrK(j) = arrK(i)
        arrK(i) = temp
      end if
    next
  next
  Response.write ("her er værdierne sorteret efter størrelse <br>")
  for k=0 to ubound(arrK)
    response.write ("værdi nr "& k &" = "& arrK(k) & "<br>")
  next
  rs.movenext
loop
----
Avatar billede busschou Praktikant
11. juni 2005 - 14:19 #9
I det kan du så selv vælge hvor mange felter fra hver række i dit udtræk fra tabellen som skal med
Det burde virke men det kan være at du skal type caste elementerne til tal for at være sikker, dvs rette
if arrK(i) < arrK(j) then
til
if cint(arrK(i)) < cint(arrK(j)) then
Avatar billede ch007 Nybegynder
26. december 2005 - 18:00 #10
bussschou -smider du et svar?

Det er vist tid til at lukket :)
Avatar billede ch007 Nybegynder
01. januar 2006 - 12:21 #11
Så må jeg lukke!
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