Avatar billede loukas Mester
04. september 2007 - 20:30 Der 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
Avatar billede hells Nybegynder
04. september 2007 - 20:41 #1
udskift:
SQL = "Select * from tekster"
med:
SQL = "Select * from tekster where antal_modtager = ''"
Avatar billede loukas Mester
04. september 2007 - 21:21 #2
OK, det er godt nok SQL = "Select * from tekster where antal_modtager = 0"
da antal_modtager er et tal-felt,
men smid et svar ;-(7
Avatar billede a1a1 Novice
04. september 2007 - 22:23 #3
SQL = "SELECT TOP 1 * FROM tekster ORDER BY NEWID()"

;o)
Avatar billede fennec Nybegynder
05. september 2007 - 09:30 #4
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 & ")")
Avatar billede hells Nybegynder
05. september 2007 - 11:59 #5
Du får et svar, selvom jeg må sige, at fennecs og a1's løsninger er temmelig smarte.
Avatar billede fennec Nybegynder
05. september 2007 - 12:05 #6
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.
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