Avatar billede kimlarsen1978 Nybegynder
11. oktober 2002 - 22:09 Der er 3 kommentarer og
2 løsninger

4 forskellige

Jeg skal have 4 tilfældige, men forskellige varer trykket ud af en database og sat dem op i kolonner. Jeg bruger dette kode:
---------------
        <%
Set rstilbud1 = Server.CreateObject "ADODB.Recordset")
rstilbud1.Open "select * from produkter where vissomtilbud=true" , StrConn, adOpenStatic, adLockReadOnly
antal=rstilbud1.recordcount

Set rstilbud2 = Server.CreateObject "ADODB.Recordset")
rstilbud2.Open "select * from produkter where vissomtilbud=true" , StrConn, adOpenStatic, adLockReadOnly
antal=rstilbud2.recordcount

Set rstilbud3 = Server.CreateObject "ADODB.Recordset")
rstilbud3.Open "select * from produkter where vissomtilbud=true" , StrConn, adOpenStatic, adLockReadOnly
antal=rstilbud3.recordcount

Set rstilbud4 = Server.CreateObject "ADODB.Recordset")
rstilbud4.Open "select * from produkter where vissomtilbud=true" , StrConn, adOpenStatic, adLockReadOnly
antal=rstilbud4.recordcount

        if not rstilbud1.eof then
        t1=timer
        Randomize t1
        k1 = Int(RND * antal)
       
        if not rstilbud2.eof then       
        t2=timer
        Randomize t2
        k2 = Int(RND * antal)

        if not rstilbud2.eof then
        t3=timer
        Randomize t3
        k3 = Int(RND * antal)
       
        if not rstilbud4.eof then
        t4=timer
        Randomize t4
        k4 = Int(RND * antal)
       
        rstilbud1.move k1
        rstilbud2.move k2
        rstilbud3.move k3
        rstilbud4.move k4
       
        if not rstilbud1.eof then
        %>
-----------------
hvordan sikre jeg mig at k1,k2,k3,k4 aldrig er det samme og at igen at dem kommer til at referere til en post der ikke findes?
Avatar billede eagleeye Praktikant
11. oktober 2002 - 22:18 #1
Jeg har brugt dette til at finde X antal random records fra en database som er forskellige fra hinanden:



strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("abb.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
myConn.Open strDSN

antalRandom = 4
Rs.Open "select * from produkter where vissomtilbud=true", myConn,1,3
inDB = rs.RecordCount
If inDB > antalRandom then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = "," & newid & ","
  indexFound = 1
  Do while indexFound < antalRandom
    Do
      Newid = Int (rnd*inDB)
    Loop while inStr(strIndex,"," & newid & ",") > 0
    strIndex = strIndex & newid & ","
    indexFound = indexFound + 1
  Loop
  strIndex = mid (strIndex,2,len(strIndex)-2)
  myArr=split(strIndex,",",-1)
  For i = Lbound(myArr) to Ubound(myArr)
    rs.move myArr(i),1
     
    'UDSKRIV FRA DATABASEN HER
    Response.write "Nr.: " & i+1 & " .... ID: " & rs("ID") & "<br>"

  next
end if
Rs.Close
Avatar billede erikjacobsen Ekspert
11. oktober 2002 - 22:35 #2
Er det Access du bruger Kim, og ca. hvor mange varer (og tilbudsvarer)
snakker vi om?
Avatar billede kimlarsen1978 Nybegynder
11. oktober 2002 - 22:36 #3
Ja til access og antallet variere fra 5 til ca. 25
Avatar billede erikjacobsen Ekspert
11. oktober 2002 - 23:03 #4
Med et antal har vi en fin løsning til MySql - men det er så desværre ikke aktuelt
Avatar billede kimlarsen1978 Nybegynder
21. december 2002 - 14:53 #5
Lukker - Fandt en anden løsning, men tak for din tid - 20 points :-)
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