Avatar billede lund_dk Praktikant
17. maj 2006 - 22:53 Der er 4 kommentarer og
1 løsning

3 random fra access tabel

Jeg har brug for at udskrive 3 random poster fra en tabel i min database.

Der må IKKE vises flere af de samme poster på én gang.

Nogen som kan hjælpe med det?
Avatar billede hmortensen Nybegynder
17. maj 2006 - 22:57 #1
SELECT TOP 3 * FROM tabel WHERE RND(id)
Avatar billede lund_dk Praktikant
17. maj 2006 - 23:06 #2
Den holder ikke helt, nu har jeg 5 poster i tabellen, og den udskriver KUN de 3 første poster i tabellen, de øvrige 2 vises aldrig ?
Avatar billede lund_dk Praktikant
17. maj 2006 - 23:07 #3
min kode

<%   
            Set rsProdukt= Conn.Execute("SELECT TOP 3 * FROM shop_produkt WHERE forside = true AND aktiv = true and RND(id)")
            if not rsProdukt.EOF then
            %>
                   
            <%
            Do until rsProdukt.eof
            %>
            <%=rsProdukt("Produktnavn")%><br>
            <%
            rsProdukt.movenext
            loop
           
           
            rsProdukt. close
            set rsProdukt= Nothing
            end if
            %>

Alle poster er true i Aktiv og i Forside
Avatar billede eagleeye Praktikant
17. maj 2006 - 23:14 #4
Access indbyggede random virker ikke specielt godt så man må ud i at lave lidt ekstra koden for at få den til at sortere posterne tilfædigt:

randomize
R=clng(100000*rnd)
SQL = "SELECT TOP 1 * FROM Tabel ORDER BY rnd(-(ID)*" & R & ")"



Så prøv at rette:

            Set rsProdukt= Conn.Execute("SELECT TOP 3 * FROM shop_produkt WHERE forside = true AND aktiv = true and RND(id)")


Til dette:

            randomize
            R=clng(100000*rnd)
            Set rsProdukt= Conn.Execute("SELECT TOP 3 * FROM shop_produkt WHERE forside = true AND aktiv = true ORDER BY rnd(-(ID)*" & R & ")")
Avatar billede lund_dk Praktikant
17. maj 2006 - 23:16 #5
Perfekt . tak ;)
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