Avatar billede slapstick Nybegynder
05. august 2008 - 12:03 Der er 9 kommentarer og
1 løsning

Randomize ikke særlig random

Jeg har en side der skal vise random billeder ud fra en db tabel..
jeg bruger det her kode men jeg synes ikke det er særlig random, der kommer tit det samme billede mange gange i træk

CountRows = "SELECT COUNT(*) AS rowcount FROM images"
Set RsCount = Conn.Execute(CountRows)
RowCount = CLng(RsCount("rowcount")) - 1
Randomize
RowID = CLng(((RowCount - CLng(Second(Now()))) * Rnd) + 1)

er der nogen der har en ide til hvordan man ka gøre det mere random?
Avatar billede langthjem Nybegynder
05. august 2008 - 12:51 #1
Hvilken type database bruger du?
Avatar billede bitmatic Nybegynder
05. august 2008 - 13:36 #2
Hvis du vil udtrække en enkelt tilfældig record fra databasen kan du bruge noget lignende af:

SELECT * FROM images ORDER BY RAND() LIMIT 1
Avatar billede bitmatic Nybegynder
05. august 2008 - 13:39 #3
I øvrigt:
Hvis du ønsker at undgå at det samme billede kommer flere gange i træk, så ønsker du ikke at gøre det mere tilfældigt... Så ønsker du snarere at gøre det mindre tilfækdigt.
Avatar billede w13 Novice
05. august 2008 - 13:43 #4
Tilfældighed indebærer jo netop, at det er forudsigeligt, og derfor kan der sagtens komme det samme billede mange gange i træk. Det hører jo med til tilfældighed.
Avatar billede w13 Novice
05. august 2008 - 13:46 #5
*at det er uforudsigeligt

:)
Avatar billede slapstick Nybegynder
05. august 2008 - 14:40 #6
hehehe ja det er selvf rigtig nok w13 men når det samme billede kommer en ti gange i træk så er det lidt irriterende
Avatar billede slapstick Nybegynder
05. august 2008 - 14:40 #7
ok bitmatic det vil jeg da lige prøve af!
Avatar billede pidgeot Nybegynder
05. august 2008 - 14:42 #8
"når det samme billede kommer en ti gange i træk så er det lidt irriterende"

Så må du jo få nogle flere billeder tilføjet :)

Hvis du mener at du får samme billede flere gange på samme side, og vil prøve at undgå dette, så skal du sørge for du kun bruger *en* query til at hente alle dem du skal bruge ud (med RAND() og LIMIT eller hvad der nu passer til din database - det nævnte er MySQL), og så hente en række fra det resultatsæt hver gang du skal bruge et billede.
Avatar billede slapstick Nybegynder
05. august 2008 - 14:57 #9
der er 3700 billeder i basen hehe burde det ikke være nok?
ja RAND() så ud til at spille fint!
så bitmatic hvis du smider et svar får du point :o)
Avatar billede bitmatic Nybegynder
05. august 2008 - 20:25 #10
ok
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