Avatar billede guldklumpen Nybegynder
08. marts 2006 - 10:09 Der er 12 kommentarer og
1 løsning

løkke - for i = 1 osv

Har en tabel med en kolonne(navn) hvori der er 12 poster.

prøver at lave følgende:

den skal gennemløbe de 12 poster og senere på siden skal jeg bruge de data

er det noget med

for i = 1 to 12

navn(i) = rs("navn")

next


senere i dokumentet når jeg skal fat i de data hvordan gør jeg så det?

Håber i forstår hvad jeg mener.
Avatar billede kalp Novice
08. marts 2006 - 10:12 #1
' " & navn(1) & " '

henter navn 1 et.. hvis jeg har læst koden korrekt..
Avatar billede kalp Novice
08. marts 2006 - 10:14 #2
for i = 1 to 12

navn(i) = rs("navn")

next

hvis faktisk læser jeg koden som at sidste navn er det som der kommer til at stå i alle dine variabler.
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 10:22 #3
meningen er at jeg senere skal kunne hente alle 12 poster.

de skal ind i en anden sql sætning - derfor skal jeg hente dem inden.

Den anden sql har også en for i = 1 to 12

Hvordan får jeg hentet skidtet ind i den??

Forstår du hvad jeg mener?
Avatar billede softspot Forsker
08. marts 2006 - 10:30 #4
Du kan smide hele resultatet af et recordset over i et 2D-array med kommandoen getRows på recordse-objektet.

set rs = conn.execute("SELECT * FROM tabel")
arrRows = rs.getRows()
rs.close


for i = 0 to ubound(arrRows,2)
  response.write arrRows(0,i) & "<br>"
next
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 10:38 #5
nu er jeg helt væk.

Prøver lige at illustrere

hvis der ser på spm http://www.eksperten.dk/spm/693232 som du besvarede

der lavede du en løkke 0 to 11

i den løkke skal der så indsættes:

<td>
de 12 poster fra kolonnen(navn) fra en anden tabel - en post ad gangen
</td>

Er man forvirret så følg med i næste afsnit!!!!!
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 10:42 #6
dvs første gang den kører løkken skal navn1 indsættes, næste gang navn 2 osv .....
Avatar billede softspot Forsker
08. marts 2006 - 10:59 #7
At løkken kørte fra 0 til 11 var for at undgå unødvendige additioner og substraktioner (og dermed spare lidt resurser og skabe mindre forvirring i koden).

Jeg er klar over at 2D-arrays er lidt mere langhårede at gennemskue (specielt dem man får ud af getRows, fordi kolonnen er 1. dimension og rækken er 2. dimension i array'et).

Det jeg læste ud af dit spørgsmål var hvordan du fik gemt data i dit recordset til senere brug og det mener jeg jo at du har med det 2D-array. Hvis du skal have fat i data bruger du "bare" indeksering ind i arrayet, som med alle andre arrays:

1. rækkes navn: arrRows(0,0)
2. rækkes navn: arrRows(0,1)
3. rækkes navn: arrRows(0,2)
4. rækkes navn: arrRows(0,3)
osv...

og man opdager så hurtigt at arrays er nul-baserede i VBS (hvis man altså ikke vidste det i forvejen :)).
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 11:08 #8
er ikke helt så hajagtig og vi er ude i lidt sort snak for mig.

Du må bare sige til hvis du synes jeg er håbløs.

Hvis jeg nu val have det recordsæt sat ind i den kode du lavede her hvordan ville det så se ud?

strmaaneder = "januar,februar,marts,april,maj,juni,juli,august,september,oktober,november,december"
arrmaaneder = split(strmaaneder,",")
sql = "SELECT count(month(dato)) AS antal, month(dato) AS maaned " & _
    "FROM tabel " & _
    "WHERE solgt = true AND navn = '" & navn & "' " & _
    "GROUP BY month(dato)"
set rs = conn.execute(sql)
response.write "<table>"
for md = 0 to 11
  if not rs.eof then
    maaned = rs("maaned")
    if md = maaned then
      antal = rs("antal")
      rs.movenext
    else
      antal = 0
    end if
  else
    antal = 0
  end if
  response.write "<tr>"
  response.write "<td>" & arrmaaneder(md) & "</td>"
  response.write "<td>" & antal & "</td>"



response.write “<td>” & ??????? her skal det indsættes ???????  & “</td>”



  response.write "</tr>"
next
response.write "</table>"
rs.close
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 11:16 #9
har løst det - det er bare så godt.

tusind tak endnu en gang.

post et svar

:-)))))))))))))))))
Avatar billede softspot Forsker
08. marts 2006 - 11:18 #10
OK :)

Kan du ikke lige for en god ordens skyld poste det du fandt ud (da det stadig er noget uklart for mig hvad vi forsøgte at løse :))?
Avatar billede guldklumpen Nybegynder
08. marts 2006 - 11:21 #11
klart - her er den kode jeg skrev ovenfor, hvor jeg tilrettede så det fungerede.

endnu en gang tusind tak for hjælpen

strmaaneder = "Januar,Februar,Marts,April,Maj,Juni,Juli,August,September,Oktober,November,December"
arrmaaneder = split(strmaaneder,",")
sql = "SELECT count(month(datos)) AS antal, month(datos) AS maaned " & _
    "FROM ejendomme " & _
    "WHERE solgt = true AND smaegler = '" & maegler & "' " & _
    "GROUP BY month(datos)"
set rs = conn.execute(sql)

for md = 1 to ubound(arrRows,2)
  if not rs.eof then
    maaned = rs("maaned")
    budget = budgetsolgt
    if md = maaned then
      antal = rs("antal")
      rs.movenext
    else
      antal = 0
    end if
  else
    antal = 0
  end if
%>
  <tr>
  <td width=145><%=arrmaaneder((md)-1)%></td>
  <td width=65 align=center><%=antal%></td>
  <td width=65 align=center><%=arrRows(1,md)%></td>
  <td width=65 align=center></td>
  </tr>
<%
next
rs.close
Avatar billede softspot Forsker
08. marts 2006 - 11:31 #12
Tak for point :)

NB: Jeg er ikke 100% sikker på (men ret overbevist om) at arrays er nul-baserede i VBS, så du skal lige sørge for at teste grundigt om du får den første række fra arrRows med i din løkke (den der: for md = 1 to ubound(arrRows,2)) - jeg tror nemlig ikke den kommer med :)

Med mindre det er meningen at den første række ikke skal med, ville jeg nok vælge denne kode i stedet:

strmaaneder = "Januar,Februar,Marts,April,Maj,Juni,Juli,August,September,Oktober,November,December"
arrmaaneder = split(strmaaneder,",")
sql = "SELECT count(month(datos)) AS antal, month(datos) AS maaned " & _
    "FROM ejendomme " & _
    "WHERE solgt = true AND smaegler = '" & maegler & "' " & _
    "GROUP BY month(datos)"
set rs = conn.execute(sql)

for md = 0 to ubound(arrRows,2)
  if not rs.eof then
    maaned = rs("maaned")
    budget = budgetsolgt
    if md = maaned then
      antal = rs("antal")
      rs.movenext
    else
      antal = 0
    end if
  else
    antal = 0
  end if
%>
  <tr>
  <td width=145><%=arrmaaneder(md)%></td>
  <td width=65 align=center><%=antal%></td>
  <td width=65 align=center><%=arrRows(1,md)%></td>
  <td width=65 align=center>&nbsp;</td>
  </tr>
<%
next
rs.close

Af andre generelle tips kan jeg da anbefale at sætte anførselstegn omkring dine attributter (det bliver du gladere for i længden - når du skal konvertere til XHTML :)), samt at indsætte et &nbsp; i tomme tabelceller (prøv at sætte border="1" på en tabel hvor cellerne ikke har noget indhold, så ser du hvorfor :)).
Avatar billede softspot Forsker
08. marts 2006 - 11:34 #13
Så kan det da godt være at du lige skal ændre denne linie

    if md = maaned then

til

    if md = maaned-1 then
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