webForumDet fria alternativet

Array med data från databas

7 svar · 364 visningar · startad av Calippo

CalippoMedlem sedan aug. 2002535 inlägg
#1

Har två tabeller i en Access databas

TABELL: tblGroups
------------------
FÄLT: id
FÄLT: strGroup

TABELL: tblProducts
------------------
FÄLT: id
FÄLT: intGroup
FÄLT: strProduct
FÄLT: dtmDate
FÄLT: intPrice

Hur skapar man en array som sparar ner allt så att man sedan kan loopa ut det?

Ex:

Jag vill skriva ut id och namn från första posten ur tblGroups.
Och sedan loopa ut alla produkter med alla fält från tblProducts som hör till posten från tblGroups.
Och sedan hoppa ner till nästa rad i tblGroups och hålla på så till sista posten är nådd.

headbugMedlem sedan sep. 2006858 inlägg
#2

Det är lite oklart vad som menas med 'allt' =) men för att få ut informationen i den ordningen du beskriver skulle jag göra två loopar för att skapa arrayen.

Börja med att skaffa ett RS, kallar den RS_grp, för tblGroups och stega dig igenom i en loop. I loopen skaffar du ett nytt RS_prod för tblProducts där du letar efter intGroup = " & RS_grp("id") & " osv

Sen kan du stega dig igenom denna subloop och fylla din array med info både ifrån rådande RS_grp och RS_prod precis på önskat sätt =)

/Jonas

CalippoMedlem sedan aug. 2002535 inlägg
#3

Japp, så långt kan jag redan, men det där med flera dimensioner i en array kan jag inte...

Jag vill skapa en sådan här array:

MyData (0,0) = "Id:et på Grupp 1"
MyData (0,1) = "Namnet på Grupp 1"
MyData (0,2) = "Id:et på Produkt 1 som hör till Grupp 1"
MyData (0,3) = "Namnet på Produkt 1 som hör till Grupp 1"
MyData (1,0) = "Id:et på Grupp 2"
MyData (1,1) = "Namnet på Grupp 2"
MyData (1,2) = "Id:et på Produkt 2 som hör till Grupp 2"
MyData (1,3) = "Namnet på Produkt 2 som hör till Grupp 2"

TravoniMedlem sedan okt. 20041 538 inlägg
#4

Det gör du med en (1) inner join.

TravoniMedlem sedan okt. 20041 538 inlägg
#5

En sql-fråga och getRows()

SELECT tblProducts.*, tblGroups.*
FROM tblGroups INNER JOIN tblProducts ON tblGroups.id = tblProducts.intGroup
ORDER BY tblGroups.strGroup,tblProducts.strProduct
TravoniMedlem sedan okt. 20041 538 inlägg
#6

Sedan så lägger du gruppid:t alternativt gruppnamnet i en variabel när du gör loopen. Är grupp id:t annat än det som ligger i variabeln skriv ut detta, annars inte.
Ungefär så här

Dim myvar : myvar = -1
For i = 1 to ubound(myarray)
    if myvar <> myarray(0,i) then 'Kolla om gruppidt finns i variabel
        Response.Write myarray(1,i) 'Det gör inte det, skriv ut gruppnamn
    Else
        Response.Write "" 'det gör det, gör ingenting
    End if
myvar = myarray(0,i) 'Fyll variabeln med gruppidt
'Skriv ut resten av posterna
Next
TravoniMedlem sedan okt. 20041 538 inlägg
#7

/r

TroxyMedlem sedan mars 20041 508 inlägg
#8

Tänkte fel.

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb