Avatar billede goose Nybegynder
09. januar 2002 - 16:33 Der er 5 kommentarer og
1 løsning

Udtræk fra DB til tabeller

Jeg forsøger i øjeblikket, at lave et udtræk fra en database til en tabel, og det går for såvidt godt nok, lige bortset fra en \"lille\" detalje.
Jeg bruger nedenstående kode som lister kategorinavnene vandret, men jeg vil gerne have dem
lodret, altså noget i stil med:

a    b    b
a    b    b
b    b    c

- men hvordan jeg gør jeg det ?
Her kommer koden:

<%
SQLstmt = \"select count (*) as antal from kategorier\"
Set rs = conn.Execute(SQLstmt)
antal = rs(\"antal\")
SQLstmt2 = \"select * from kategorier order by katnavn\"
set rs2 = conn.execute(SQLstmt2)
%>

<table width=\"100%\" border=\"1\">
<%
const WIDTH=3
for i=0 to antal
if (i mod WIDTH)=0 then response.write \"<tr>\"
  DO WHILE NOT rs2.EOF
response.write \"<td >\" & rs2(\"katnavn\") & \"</td>\"
if (i mod WIDTH)=WIDTH-1 then response.write \"</tr>\"
i=i+1
rs2.MoveNext
LOOP
if (i-1 mod WIDTH)<>WIDTH-1 then response.write \"</tr>\"
next
%>
</table>
<%
rs.close
set rs = nothing
rs2.close
set rs2 = nothing
conn.close
set conn = nothing
%>
Avatar billede pierrehusted Nybegynder
10. januar 2002 - 08:41 #1
Det giver ikke helt mening... 
- hvordan ser dit output ud nu ?
- Hvad er der i tabellerne ?
Avatar billede goose Nybegynder
10. januar 2002 - 09:29 #2
Nu er mit output godt nok i 3 kolonner som det skal være, men vandret:

a  a  b
b  b  b
b  b  c

- og jeg vil gerne have det lodret, altså

a  b  b
a  b  b
b  b  c



Bogstaverne a,b og c symboliserer et sorteret udtræk af navne.
Det er altså lidt svært at forklare, men jeg håber det giver mening.
Avatar billede pierrehusted Nybegynder
10. januar 2002 - 10:29 #3
Prøv at definere en variabel til hver enkelt linie, og så fylde elementer i dem en ad gangen.

Du får fra databasen a a b b b b b b c

Så fylder du dem i linie1, linie2, linie3, linie1...

Avatar billede pierrehusted Nybegynder
10. januar 2002 - 10:30 #4
Det kan laves enten ved at du definerer variabler til hver enkelt linie, eller ved at du laver et ARRAY som indeholder linierne.
Avatar billede goose Nybegynder
10. januar 2002 - 11:45 #5
Jo, det er muligt man skal definerer variabler som du skriver, men det er altså lidt ud over mine evner, så et eksempel ville ikke være af vejen.
Avatar billede pierrehusted Nybegynder
10. januar 2002 - 11:52 #6
dim linie1, linie2, linie3
dim linienr
linienr = 1
linie1 = \"\"
linie2 = \"\"
linie3 = \"\"

DO WHILE NOT rs2.EOF
  Select case linienr
    Case 1
      linie1 = linie1 & \"<td>\" & rs2(\"katnavn\") & \"</td>\"
    Case 2
      linie2 = linie2 & \"<td>\" & rs2(\"katnavn\") & \"</td>\"
    Case 3
      linie3 = linie3 & \"<td>\" & rs2(\"katnavn\") & \"</td>\"
  End Select
  linienr = linienr +1
  if linienr > 3 then linienr = 1
  rs2.MoveNext
LOOP




Så skal du også lige sætte noget TR udenom.
Det her kan laves MEGET pænere og mere dynamisk med ARRAYs. Men det er jeg ikke lige mester i - så det vil jeg lade være op til andre.
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