26. august 2003 - 17:28Der er
3 kommentarer og 2 løsninger
opbygning af array med SQL - do while
Jeg har en række produkter som har en, beskrivelse et id-nr og en databladstype, databladstypen er er heltal.
Jeg skal have opbygget et x antal array's alt efter hvormange databladstyper der forfindes.
Jeg har prøvet med følgende, men den laver bare formange array's
SQLr = "SELECT id, varebeskrivelse, databladstype FROM produkter WHERE varegruppe_id IN (SELECT id FROM varegrupper WHERE vis_user='yes') AND visuser='yes' AND databladstype <> NULL" set rsg = myConn.execute(SQLr) arrVareGr3 = rsg.GetRows() rsg.Close Set rsg = Nothing
SQL = "SELECT id, varebeskrivelse, databladstype FROM produkter WHERE varegruppe_id IN (SELECT id FROM varegrupper WHERE vis_user='yes') AND visuser='yes' AND frigivelsesdato <= Date() AND tilbudsdato <= Date() AND databladstype <> NULL" set rs = myConn.execute(SQL) arrUnderGr3 = rs.GetRows() rs.Close Set rs = Nothing
For i = 0 to Ubound(arrVareGr3,2) print_VareGr3 = print_VareGr3 & "<option value=""" & arrVareGr3(0,i) &""">" & arrVareGr3(1,i) & "</option>" & VbCrLf print_js3 = print_js3 & "VareGr3[" & arrVareGr3(2,i) & "] = new Array (" count = 0 For j = 0 to Ubound(arrUnderGr3,2) If arrUnderGr3(2,j) = arrVareGr3(2,i) Then If count = 0 Then print_js3 = print_js3 & "'0#Vælg undergruppe','" & arrUnderGr3(0,j) & "#" & arrUnderGr3(1,j) & "'" Else print_js3 = print_js3 & ",'" & arrUnderGr3(0,j) & "#" & arrUnderGr3(1,j) & "'" End If count = count + 1 End If Next print_js3 = print_js3 & ")" & VbCrLf Next
---------------------------------------------- array'et skulle gerne se sådan ud:(da jeg senere skal bruge det i et javascript)
VareGr3[databladstype] = new Array ('ID#VAREBESKRIVELSE')
eller med værdier
(databladstype = 1)
VareGr3[1] = new Array ('0#Vælg undergruppe','1#skruer','2#møtrikker')
(databladstype = 2)
VareGr3[2] = new Array ('0#Vælg undergruppe','23#Hammer','45#File')
Problemet er at der bliver lavet et array for hver produkt, men det er kun den længde som det skal være.
eks. Her hvor vi har 2 produkter kommer det til at se sådan ud: VareGr3[2] = new Array ('0#Vælg undergruppe','23#Hammer','45#File')VareGr3[2] = new Array ('0#Vælg undergruppe','23#Hammer','45#File') -------------------------------------------- og det kan mit javascript ikke fatte.
Håber i måske kan hjælpe, skiv endelig hvis der skal mere forklaring til.
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Prøv at tilføje en DISTINCT på din første SQL, så skulle den kun vælge en vare en gang.
SQLr = "SELECT DISTINCT id, varebeskrivelse, databladstype FROM produkter WHERE varegruppe_id IN (SELECT id FROM varegrupper WHERE vis_user='yes') AND visuser='yes' AND databladstype <> NULL" set rsg = myConn.execute(SQLr)
Hvordan kan det være du har to SQL sætninger?? Kan en ikke gøre det.. Kan du give et eks på din database hvordan eksvis dette ligger i databasen: VareGr3[1] = new Array ('0#Vælg undergruppe','1#skruer','2#møtrikker')
SQLr = "SELECT distinct databladstype FROM produkter WHERE varegruppe_id IN (SELECT id FROM varegrupper WHERE vis_user='yes') AND visuser='yes' AND frigivelsesdato <= Date() AND tilbudsdato <= Date() AND databladstype <> NULL" set rsg = myConn.execute(SQLr) if not rsg.eof then
SQL = "SELECT id, varebeskrivelse, databladstype, billedfil FROM produkter WHERE varegruppe_id IN (SELECT id FROM varegrupper WHERE vis_user='yes') AND visuser='yes' AND frigivelsesdato <= Date() AND tilbudsdato <= Date() AND databladstype <> NULL" set rs = myConn.execute(SQL) arrUnderGr3 = rs.GetRows() rs.Close Set rs = Nothing
do while not rsg.eof data = rsg("databladstype")
print_js3 = print_js3 & "VareGr3[" & rsg("databladstype") & "] = new Array (" count = 0 For j = 0 to Ubound(arrUnderGr3,2)
if len("" & arrUnderGr3(3,j)) = 0 then billede = "blank1.gif" else billede = arrUnderGr3(3,j) end if
If arrUnderGr3(2,j) = data Then
print_VareGr3 = print_VareGr3 & "<option value="""&rsg("databladstype")&""" id="""&billede&""" label="""&arrUnderGr3(0,j)&""">" & arrUnderGr3(1,j) & "</option>" & VbCrLf If count = 0 Then print_js3 = print_js3 & "'0#Vælg undergruppe#blank1.gif','" & arrUnderGr3(0,j) & "#" & arrUnderGr3(1,j) & "#" & billede &"'" Else print_js3 = print_js3 & ",'" & arrUnderGr3(0,j) & "#" & arrUnderGr3(1,j) & "#" & billede &"'" End If count = count + 1 End If Next print_js3 = print_js3 & ")" & VbCrLf
rsg.movenext loop end if
Tak for hjælpen, det hjælper altid lige at få et pa ekstra øjne på. Det var det med distinct der gjorde det hele.
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.