Avatar billede jansangill Nybegynder
26. april 2007 - 02:46 Der er 8 kommentarer og
1 løsning

ASP og tables

Okay jeg er ved at prøve at loade noget content i en table.

Der er 7 rows og 21 colums.

Jeg har det problem at jeg ikke helt ved hvordan jeg skal få loopet lortet ud så det rigtige data kommer i de rigtige celler.

Der er kun en ting fra databasen der konstant skal loopes ud.

Situationen er således:

Access DB:

id
status (1 2 3 4 ....20)
info (skal loopes ud)

Dilemma:

Efter hver 6 record er gået igennem skal den gå over i en ny column og fortsætte med at spytte ud. osv osv.

    ELLER

Når status skifter skal den loope videre i en ny column. Så der til sidst er 21 columns af data.



Det skulle helst komme til at se ud som dette eksempel:

http://www.123ogabc.dk/example.html
Avatar billede saudoo Nybegynder
26. april 2007 - 10:23 #1
Det er lidt tid siden jeg har arbejdet med ASP, så du må lige bære over med mig, hvis det er lidt forforkert skrevet. Jeg skriver i VB, og det er egentlig bare for at du kan få en idé om hvordan det kan gøres. :)

tal = 0
While NOT recordset.EOF
  If tal = 0 Then
    Response.Write("<tr>")
  End If
  tal = tal + 1
  Response.Write("<tr>" & recordset.Fields("info") & "</tr>")

  If tal = 6 Then
    tal = 0
  Response.Write("</tr>")
  ElseIF tal < 6 AND recordset.EOF Then
    Response.Write("<td colspan="" & tal - 6 & "">")
    Response.Write("</tr>")
  End If
recordset.MoveNext
Wend



Okay.. Det er noget værre noget jeg har skrevet. Men skal skynde mig videre, så kan ikke lige nå at lave det ordentligt før lidt senere på dagen. Det er ikke muligt at tjekke om dit recordset er tjekket igennem, når jeg kører det i en While NOT recordset.EOF.. Men jeg kan ikke lige huske hvad det er man skal skrive istedet. :P Skal nok kigge på det senere, med mindre du selvfølgelig har fundet ud af det.

Håber du kan forstå hvor jeg vil hen med det, da koden, i min mening, ikke er godt nok til at blive brugt. :)
Avatar billede saudoo Nybegynder
26. april 2007 - 10:24 #2
Okay.. glem det.. jeg læste helt forkert.. ^^ Fantastisk..
Avatar billede jansangill Nybegynder
26. april 2007 - 10:45 #3
hehe jeg håber da at du kan jælpe lidt senere på dagen så:) Fordi je har lidt problemer med den:(
Avatar billede cpufan Juniormester
26. april 2007 - 16:40 #4
da en tábel programmeringsmæssigt bygges op row-vis,

skal du en tur over arrays for at flække det sammen.

dim rakke1Arr(20),rakke2Arr(20),rakke3Arr(20),rakke4Arr(20),rakke5Arr(20),rakke6Arr(20)

raekketal = 1
indextal = 1
do while not rs.eof
select case raekketal
case 1
rakke1Arr(indextal)= rs(0)
case 2
rakke2Arr(indextal)= rs(0)
case 3
rakke3Arr(indextal)= rs(0)
case 4
rakke4Arr(indextal)= rs(0)
case 5
rakke5Arr(indextal)= rs(0)
case 6
rakke6Arr(indextal)= rs(0)
end select

rs.movenext
raekketal = raekketal + 1
if raekketal > 6 then
raekketal = 1
indextal = indextal + 1
end if
loop

'bagefter opbygges tabellen:

response.write"<table>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke1Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke2Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke3Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke4Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke5Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke6Arr(i)&"</td>"
next
response.write "</tr>"


</table>
Avatar billede jansangill Nybegynder
27. april 2007 - 00:08 #5
cpufan,af en eller anden grund virker det ikke.

Dette er min kode(eller din kode):

Den retunerer denne fejl:
Microsoft VBScript runtime  error '800a000d'

Type mismatch: 'rakke1Arr'

/table1.asp, line 22

<%
Set rs = Server.CreateObject("ADODB.RecordSet")
SQL = ("SELECT * FROM hylde1")
JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../database/jn.mdb")
rs.Open SQL, JET, 1
raekketal = 1
indextal = 1

do while not rs.eof
select case raekketal
case 1
rakke1Arr(indextal)= rs("info")
case 2
rakke2Arr(indextal)= rs("info")
case 3
rakke3Arr(indextal)= rs("info")
case 4
rakke4Arr(indextal)= rs("info")
case 5
rakke5Arr(indextal)= rs("info")
case 6
rakke6Arr(indextal)= rs("info")
end select

rs.movenext
raekketal = raekketal + 1
if raekketal > 6 then
raekketal = 1
indextal = indextal + 1
end if
loop

'bagefter opbygges tabellen:

response.write"<table>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke1Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke2Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke3Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke4Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke5Arr(i)&"</td>"
next
response.write "</tr>"
response.write"<tr>"
for i = 1 to 20
response.write"<td>"&rakke6Arr(i)&"</td>"
next
response.write "</tr>"

response.write "</table>"


rs.Close
Set rs=Nothing


%>
Avatar billede cpufan Juniormester
27. april 2007 - 12:44 #6
du mangler denne linie i starten

dim rakke1Arr(20),rakke2Arr(20),rakke3Arr(20),rakke4Arr(20),rakke5Arr(20),rakke6Arr(20)
Avatar billede jansangill Nybegynder
27. april 2007 - 13:31 #7
det må jeg sige, nu føler jeg mig især dum.

Ledte 500 år efter fejlen , men missede totalt at jeg ikke havde skabt navngivet lortet.

Smid svar og mange tak for hjælpen.
Avatar billede cpufan Juniormester
27. april 2007 - 15:27 #8
ok here it comes


virker det så?


skrev det blot ind her på exp -
så det var utestet .............
Avatar billede jansangill Nybegynder
27. april 2007 - 16:02 #9
Ja det virker.  Der kommer data ind i hver celle. Har ikke testet 100% endnu. men det ser sådan ud.
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