On Thu, 3 Jan 2002 00:00:35 +0100, "Ib Stokkebye" <vamdrup@image.dk>
wrote:
>
http://www.kolding-loebet.nu/deltager/deltager.asp
>På denne side har jeg en deltager liste, hvordan får jeg den til at blive
>vist i en tabel med 2 kolonner. Hvor den i kolonne 1 skal skrive navn,start
>nummer, distangce også videre i alt 6 rækker inden den skriver oplysninger
>om næste deltage.
>Klonne 2 skal den skrive den tilsvarende oplysning fra databasen.
>Jeg bruger denne kode lige nu men det er jo kun de rå data fra databasen.
>Er den måde jeg henter oplysningerne fra databasen på en sikker måde at gøre
>det på, eller skal jeg gøre det på en anden måde.
<SNIP>
>' SQL forespørgsel
>strSQL = "Select * from deltager order by navn"
Det er som regel mere gennemskueligt at hente navngivne felter og ikke
" * " fra databasen - altså fx:
strSQL = "Select navn, postby, koen, distance, klub, startnr from
deltager order by navn"
- det har desuden den fordel, at du for det første kun henter det, du
har brug for, og for det andet, så virjer det stadig, hvis du bytter
rundt på rækkefølgen af felterne i databasen
>' Udfør forespørgsel (rs indeholder nu resultatet)
>Set rs = Conn.Execute(strSQL)
>' Gennemløb Recordset (rs) med en løkke
' Det du nu skal er at sætte værdierne ind i en tabel:
Response.,Write "<table>" & vbcrlf
' (den er uden for loopen!)
>Do
>' Udskriv værdien af kolonnen navn
Response.,Write "<tr>" & vbcrlf
' (inden for loopen)
Response.Write "<td>" & rs("navn") & "</td>" & vbcrlf
Response.Write "<td>" & rs("postby") & "</td>" & vbcrlf
Response.Write "<td>" & rs("koen") & "</td>" & vbcrlf
Response.Write "<td>" & rs("distance") & "</td>" & vbcrlf
Response.Write "<td>" & rs("klub") & "</td>" & vbcrlf
Response.Write "<td>" & rs("startnr") & "</td>" & vbcrlf
' afslut posten med:
Response.,Write "</tr>" & vbcrlf
>' Gå til næste Record i rs
>rs.MoveNext
>' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
>Loop While Not rs.EOF
' afslut tabellen uden for loopen med:
Response.,Write "</table>" & vbcrlf
>' Luk databaseforbindelse
>Conn.Close
>Set Conn = Nothing
' Husk også:
rs.Close
Set rs = Nothing
>%>
Bemærk:
Sådanne "formatterings-loops" gør det uhyre meget enklere at lave
formattering af store mængder data. Hvis du fx vil fremhæve et bestemt
felt i tabellen, så er det jo bare at give det pågældende felt en fed
eller en farve i loopen.
Eller man kan lave et check på, om en værdi fx er negativ eller fx
større end 100 og så give disse værdier en bestemt farve.
Fx hvis du vil offentliggøre et løbsresultat, hvor der er et bestemt
kvalifikationskrav eller hvad ved jeg - så kan du i loopen indsætte
linien:
sluttid = rs("sluttid")
Response.Write "<td style="""color:"
If tid < 5 Then
Response.Write "#00ff00"
Else
Response.Write "#ff0000"
End If
Response.Write """>" & tid & "</td>" & vbcrlf
På den måde bliver dine sider meget mere "dynamiske" ...
Good luck,
Jørn