Avatar billede nizax Nybegynder
27. september 2004 - 22:11 Der er 20 kommentarer og
1 løsning

Udtræk fra database som array

Jeg er ved at lave et udtræk, men vil gerne have mit udtræk som array... Det gør det nemmere for det jeg skal lave. Nogen, som kender en metode til det?
Avatar billede eagleeye Praktikant
27. september 2004 - 22:14 #1
Du kan bruge recordset .GetRows metode, den givet et array:
Et eks: http://activedeveloper.dk/artikler/default.asp?articleid=176
Avatar billede arne_v Ekspert
27. september 2004 - 22:15 #3
Vil du have rækker som arrays, kolonner som arrays eller tabeller som
to dimensionelle arrays ?
Avatar billede nizax Nybegynder
27. september 2004 - 22:41 #4
<!-- #include file="conn.asp" --->
<%
strSQL = "SELECT pic,title FROM dvd_list WHERE online = 'yes' AND upcomming = 'no' ORDER BY title"
set rs = conn.execute(strSQL)

    If not rs.EOF then
       
        arrDVD = conn.getrows()
       
    End if
%>
<h1>Kommende DVD'er</h1>
<%   
    if isarray(arrDVD) then
       
        response.write "<table><tr>" & vbcrlf
        response.write "<td>Billede</td>" & vbcrlf
        response.write "<td>Titel</td></tr>" & vbcrlf
       
        for i=0 to ubound(arrDVD,2)
            response.write "<tr>" & vbcrlf
            response.write "<td>" & arrDVD(0,i) & vbcrlf
            response.write "<td>" & arrDVD(1,i) & vbcrlf
            response.write "<td>" & arrDVD(2,i) & vbcrlf
            response.write "</tr>" & vbcrlf
        next
       
        response.write "</table>"
       
    End if
%>

Kan nogen se hvad jeg gør forkert?
Avatar billede nizax Nybegynder
27. september 2004 - 22:42 #5
Avatar billede nizax Nybegynder
27. september 2004 - 22:42 #6
har bare skrevet der lidt om
Avatar billede erikjacobsen Ekspert
27. september 2004 - 22:43 #7
Du har ikke en  arrDVD(2,i)
Avatar billede nizax Nybegynder
27. september 2004 - 22:45 #8
den har jeg fjernet! MEn virker ikke alligevel...
Avatar billede eagleeye Praktikant
27. september 2004 - 22:46 #9
Ja du har kun hetet 2 kolonner ud: pic,title
1. kolonne kommer i arrDVD(0,i)
2. kolonne kommer i arrDVD(1,i)
Avatar billede eagleeye Praktikant
27. september 2004 - 22:46 #10
Hvilken fejl får du?
Avatar billede nizax Nybegynder
27. september 2004 - 22:46 #11
Tror slet ikke den laver et array... For når jeg kigger i min kilde kode på siden står der faktisk kun : <h1>Kommende DVD'er</h1>
Avatar billede eagleeye Praktikant
27. september 2004 - 22:47 #12
Der mangler også </td>'er:
            response.write "<td>" & arrDVD(1,i) & vbcrlf
Sådan her:
            response.write "<td>" & arrDVD(1,i) & "</td>" & vbcrlf
Avatar billede eagleeye Praktikant
27. september 2004 - 22:48 #13
Det skal også være rs.GetRows og ikke Conn.GetRows:

        arrDVD = rs.getrows()
Avatar billede nizax Nybegynder
27. september 2004 - 22:49 #14
Ups...! Kom loige til at kigge i min DB :) Der er jo selvfølgelig ikke noget i... Men tak for hjælpen.
Avatar billede eagleeye Praktikant
27. september 2004 - 22:49 #15
Ja der skal også være noget i database ;)
Avatar billede nizax Nybegynder
27. september 2004 - 23:11 #16
Nu har jeg så udbygget den lidt...

<!-- #include file="conn.asp" --->
<%
strSQL = "SELECT pic FROM dvd_list WHERE online = 'yes' AND upcomming = 'no' ORDER BY title"
set rs = conn.execute(strSQL)

    If not rs.EOF then
       
        arrDVD = rs.getrows()
        Count_Image_Prints = 0
       
    End if
%>
<h1>Kommende DVD'er</h1>
<%
if isarray(arrRecords) then

    For I = 0 to ubound(arrDVD,2)
        Count_Image_Prints = Count_Image_Prints + 1

        If Count_Image_Prints = 1 then
            response.write "<tr>" & vbCrLf
        end if

        response.write "<td>" &_
                "<img src='./gfx/dvd/" & arrDVD(I) & "'>" &_
        "</td>" & vbCrLf

        If Count_Image_Prints = 3 then
            response.write "</tr>" & vbCrLf
            Count_Image_Prints = 0
        end if
    Next

End if
%>

Men nu sker der ikke rigtig noget igen...
Avatar billede nizax Nybegynder
27. september 2004 - 23:13 #17
Sådan:

<!-- #include file="conn.asp" --->
<%
strSQL = "SELECT pic FROM dvd_list WHERE online = 'yes' AND upcomming = 'no' ORDER BY title"
set rs = conn.execute(strSQL)

    If not rs.EOF then
       
        arrDVD = rs.getrows()
        Count_Image_Prints = 0
       
    End if
%>
<h1>Kommende DVD'er</h1>
<%
if isarray(arrDVD) then

    For I = 0 to ubound(arrDVD,2)
        Count_Image_Prints = Count_Image_Prints + 1

        If Count_Image_Prints = 1 then
            response.write "<tr>" & vbCrLf
        end if

        response.write "<td>" &_
                "<img src=gfx/dvd/" & arrDVD(I) & ">" &_
        "</td>" & vbCrLf

        If Count_Image_Prints = 3 then
            response.write "</tr>" & vbCrLf
            Count_Image_Prints = 0
        end if
    Next

End if
%>
Avatar billede nizax Nybegynder
27. september 2004 - 23:14 #18
Min fejl:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: 'arrDVD'

/dvd/upcommig.asp, line 24
Avatar billede eagleeye Praktikant
27. september 2004 - 23:17 #19
PRøv at rette denne:
For I = 0 to ubound(arrDVD,2)

til:

For I = 0 to ubound(arrDVD)
Avatar billede nizax Nybegynder
27. september 2004 - 23:29 #20
samme fejl...
Avatar billede eagleeye Praktikant
27. september 2004 - 23:56 #21
den giver stadig et 2 dim array så det skal være:

For I = 0 to ubound(arrDVD,2)

og så ret:
        response.write "<td>" &_
                "<img src=gfx/dvd/" & arrDVD(I) & ">" &_
        "</td>" & vbCrLf
til:
        response.write "<td>" &_
                "<img src=gfx/dvd/" & arrDVD(0,I) & ">" &_
        "</td>" & vbCrLf
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