04. september 2007 - 20:30Der er
5 kommentarer og 1 løsning
Tilfældig post
Hej, Jeg har fundet den her stump kode som virker fint, men den skal kun tage en tilfældig post som IKKE har noget indhold i kolonnen "antal_modtager" Hvordan gør jeg?!?!
Set rs = Server.CreateObject("ADODB.RecordSet") SQL = "SELECT * FROM tekster" rs.Open SQL, Conn, 3, 1 rndMax = rs.RecordCount if rndMax > 0 then Randomize rndNumber = Int((RND * rndMax)) 'Finder et random nummer rs.Move rndNumber 'Flytter til den valgte record
'Udskriv den tilfældige valgte post her Response.Write rs("tekstid") Response.Write rs("antal_modtager") else Response.Write "Ingen poster" end if
A1's løsning er til MS-SQL. På den måde kan det klares med en simpel kode:
set rs = conn.execute("SELECT TOP 1 * FROM tekster where antal_modtager = 0 ORDER BY NEWID()") if not rs.eof then Response.Write rs("tekstid") Response.Write rs("antal_modtager") else Response.Write "Ingen poster" end if
Med MySQL skal det være: set rs = conn.execute("SELECT * FROM tekster where antal_modtager = 0 ORDER BY Rand() limit 1")
Med Access skal der lidt mere kode til da dens egen rnd funk ikke er særlig god, så den kombineres med ASP's: randomize R=clng(100000*rnd) SQL = "SELECT TOP 1 * FROM Tabel ORDER BY rnd(-(ID)*" & R & ")" set rs = conn.execute("SELECT TOP 1 * FROM tekster where antal_modtager = 0 ORDER BY rnd(-(ID)*" & R & ")")
hells >> Det er som man tager det. Jeg kan klart se muligheder i den oprindelige kode, da den er crossDB, og vil derfor køre uanset hvilken database man bruger, hvor de koder vi har givet skal ændres, hvis man skifter database.
Har man vedtaget at man kun bruger en database kan man bruge vores løsninger, men vil man evt skifte på et senere tidspunkt, er den oprindelige kode at fortrække.
Synes godt om
Ny brugerNybegynder
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.