/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Tilfældig rækkefølge
Fra : Kasper Katzmann


Dato : 04-11-01 15:59

Hej gruppe.

Jeg har en database med 4 felter som jeg skal have vist efter hinanden.
Det nemme ville være at vise dem i en fast rækkefølge hver gang de
bliver vist (det bliver de 20-30 gange eller mere).

felt1
felt2
felt3
felt4

Men det er vigtigt at de bliver vist i tilfældig rækkefølge, så de kommer
til at stå forskelligt for hver gang recordsettet bliver hevet frem.

felt4
felt1
felt3
felt2

felt2
felt4
felt1
felt3

Hvordan gør jeg det?
Med Random tager den vel hvert felt helt tilfældigt,
så der i princippet kunne stå det samme i alle fire felter??

/Kasper K



 
 
Anders Holbøll (05-11-2001)
Kommentar
Fra : Anders Holbøll


Dato : 05-11-01 20:08

Kasper Katzmann wrote:
>
> Jeg har en database med 4 felter som jeg skal have vist
> efter hinanden. [Hvordan viser man dem i en tilfældig
> rækkefølge?]

Vi kunne sige, at du have dine værdier i et array, f.eks. fordi du har
brugt GetRows:

Rs.Open Sql, Conn, 0, 1, 1
If Rs.Eof Then Rows = 0 Else Rows=Rs.GetRows
Rs.Close

If IsArray(Rows) Then
'-- Lav permuterings array
ReDim Permut(UBound(Rows, 2))
For i = 0 To UBound(Permut)
Permut(i) = i
Next

'-- Vis rækker i tilfældig rækkefølge 20 gange
Randomize
For j = 1 to 20
Call Permuter(Permut)

Response.Write "<table>"
Response.Write "<tr>"
Response.Write "<td>Id</td>"
Response.Write "<td>Navn</td>"
Response.Write "<td>Dato</td>"
Response.Write "</tr>" & vbCrLf
For i = 0 To UBound(Permut)
Response.Write "<tr>"
Response.Write "<td>" & Rows(0, Permut(i)) & "</td>"
Response.Write "<td>" & Rows(1, Permut(i)) & "</td>"
Response.Write "<td>" & Rows(2, Permut(i)) & "</td>"
Response.Write "</tr>" & vbCrLf
Next
Response.Write "</table>"
Next
End If

Sub Permuter(ByRef Permut)
Dim i, j, t, size
size = UBound(Permut)
For i = 0 To size
j = CLng(Int((size + 1) * Rnd))
t = Permut(i)
Permut(i) = Permut(j)
Permut(j) = t
Next
End Sub

--
Anders

Søg
Reklame
Statistik
Spørgsmål : 177507
Tips : 31968
Nyheder : 719565
Indlæg : 6408569
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste