Avatar billede damnit Nybegynder
23. oktober 2005 - 14:51 Der er 8 kommentarer og
1 løsning

Vælg random poster i en Access db

Hey!
Ikke verdens skarpeste ASP frækkert her... Men...

Jeg har scriptet et fotoalbum! Så vil jeg gerne have, at den på forsiden henter et album menus overskrift og parentid overskriften og derefter lister 3 random billeder nedenunder. Det skal den så gøre med alle de albums der ligger der.

Albums defineres ved at de ligger i tabellen "menu" og har et menuID på 3 cifre. Fx 400.

Min databaseopbygning ser således ud:
[Billeder]
id = autonummerering (billedets id)
albumID = fx 400 eller 401
filNavn = billedets navn

[Menu]
menuID = child (altså menuens eget ID)
id = parent (altså den menu som den hører under)
menuNavn = menuens navn

Det jeg så har prøvet er følgende:

SQL_album = "SELECT m.menuNavn, m.menuID, m.id FROM Menu m, Billeder b WHERE m.menuID = b.albumID GROUP BY m.menuNavn, m.menuID, m.id"
set RS_album = conn.execute(SQL_album)
   

SQL_rnd = "SELECT TOP 3 filNavn FROM Billeder WHERE albumID = " & RS_album("menuID") & " ORDER BY rnd()"
set RS_rnd = conn.execute(SQL_rnd)

Hvor den jeg nok skal editere i er SQL_rnd

Mit ASP ser således ud:

        do while not RS_album.eof
        if NOT blnFirst = true then response.write "<hr />"
       
            response.Write "<p><a href=""?id=" & strID & "&sub=" & RS_album("menuID") & """>" & VbCrLF &_
            RS_album("menuNavn") & " - " & RS_albumNavn("menuNavn") & "<br />" & VbCrLf &_
            "<img class=""imgBorder"" src=""billeder/festival_imgs/" & RS_album("menuID") & "/pics/thumbs/" & RS_rnd("filNavn") & """ />" & VbCrLf &_
            "<img class=""imgBorder"" src=""billeder/festival_imgs/" & RS_album("menuID") & "/pics/thumbs/" & RS_rnd("filNavn") & """ />" & VbCrLf &_
            "<img class=""imgBorder"" src=""billeder/festival_imgs/" & RS_album("menuID") & "/pics/thumbs/" & RS_rnd("filNavn") & """ />" & VbCrLf  &_
            "</a></p>" & VbCrLf
        blnFirst = false
        RS_album.movenext
            loop


Jeg vil virkelig gerne se noget komplet eksempel - for jeg er ikke så sej til at oversætte pseudokode til virkelighed :)
Avatar billede softspot Forsker
23. oktober 2005 - 14:56 #1
randomize
rndNum = int(-1000*rnd())
SQL_rnd = "SELECT TOP 3 filNavn FROM Billeder WHERE albumID = " & RS_album("menuID") & " ORDER BY rnd(" & rndNum & "*id)"
set RS_rnd = conn.execute(SQL_rnd)
Avatar billede softspot Forsker
23. oktober 2005 - 14:58 #2
...og det fungerer i en Access-database

I en SQL-server kan du f.eks. benytte

SQL_rnd = "SELECT TOP 3 filNavn FROM Billeder WHERE albumID = " & RS_album("menuID") & " ORDER BY NewID()"
set RS_rnd = conn.execute(SQL_rnd)
Avatar billede damnit Nybegynder
23. oktober 2005 - 15:02 #3
Problemet er...
Den vælger samme billede hvis jeg benytter den asp kode som jeg har gjort i bunden... ?
Avatar billede damnit Nybegynder
23. oktober 2005 - 15:08 #4
Men tilgengæld viser den billederne Random!! Fedt:) Den viser bare 3 ens...
Avatar billede softspot Forsker
23. oktober 2005 - 15:16 #5
Ja, det er fordi du ikke itererer gennem listen af billeder, men kun igennem listen af menupunkter...

do while not RS_album.eof
  if NOT blnFirst = true then response.write "<hr />"
       
  response.Write "<p><a href=""?id=" & strID & "&sub=" & RS_album("menuID") & """>" & VbCrLF &_
  RS_album("menuNavn") & " - " & RS_albumNavn("menuNavn") & "<br />" & VbCrLf

  randomize
  rndNum = int(-1000*rnd())
  SQL_rnd = "SELECT TOP 3 filNavn FROM Billeder WHERE albumID = " & RS_album("menuID") & " ORDER BY rnd(" & rndNum & "*id)"
  set RS_rnd = conn.execute(SQL_rnd)

  do while not rs_rnd.eof
    response.Write "<img class=""imgBorder"" src=""billeder/festival_imgs/" & RS_album("menuID") & "/pics/thumbs/" & RS_rnd("filNavn") & """ />" & VbCrLf
    rs_rnd.movenext
  loop
  response.Write "</a></p>" & VbCrLf
  blnFirst = false
  RS_album.movenext
loop
Avatar billede damnit Nybegynder
23. oktober 2005 - 15:28 #6
Hold da kæææææft - det virker satme!! :D Tusind tak!! Har jeg kun brugt 4 timer på at stene over :D Smid et svar!
Avatar billede softspot Forsker
23. oktober 2005 - 15:42 #7
Velbekomme :D
Avatar billede damnit Nybegynder
23. oktober 2005 - 15:54 #8
Sidder med et par nye probz :) Vender nok tilbage på exp.dk i aften, hehe... Men takker  :D
Avatar billede softspot Forsker
23. oktober 2005 - 16:01 #9
Du smider bare et spørgsmål, så skal jeg nok være der, hvis det er noget jeg magter at løse :)
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