Oprettet søn. d. 29. april 2007 kl. 20:33:19

flodhesten
flodhesten (13.705 point. Point ude: 550)

Tilfældig recordset fra database

Hej eksperter.

Jeg mangler lidt hjælp til at lave et system, der finder 10 tilfælddige recordset id i min access database, og skal gemme hver enkelt id i 10 forskellige sessions, henholdsvis session("s1"), session("s2") osv... Det skal dog ikke være muligt at få 2 sessions med samme id.

Er der nogen der kan hjælpe mig med dette?

På forhånd tak.

Skrevet søn. d. 29. april 2007 kl. 23:22:55| #1

loukas
loukas (10.037 point)
Snuppet direkte fra: http://www.eksperten.dk/ (...)
Men noget i den her stil må kunne gøre det.

Rs.Open "SELECT * FROM abbtabel", myConn,1,3
inDB = rs.RecordCount
If inDB > 5 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = "," & newid & ","
  indexFound = 1
  Do while indexFound <10
    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
     
    Response.write " UDSKRIV DATA HER med rs(""FELT"") .... "
    'gemmer i session
    session("s"&i&"") = rs(""FELT"")

  next
end if
Rs.Close

Skrevet man. d. 30. april 2007 kl. 18:47:09| #2

flodhesten
flodhesten (13.705 point)
Se lige efter om det her ser helt galt ud:

<%
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.Open("database.mdb")
Rs.Open "SELECT * FROM questions", myConn,1,3
inDB = rs.RecordCount
If inDB > 5 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = "," & newid & ","
  indexFound = 1
  Do while indexFound <10
    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
     
    Response.write "" & rs("id") & ""
    'gemmer i session
    session("s"&i&"") = rs("id")

  next
end if
Rs.Close
%>

Det virker i hvert fald ikke, jeg får bare "Siden kan ikke vises" og jeg ved ikke hvorfor jeg ikke får nogen fejlmeldelse, på trods af, at jeg har slået det til.

Skrevet man. d. 30. april 2007 kl. 20:52:33| #3

flodhesten
flodhesten (13.705 point)
Hmm, det her virker:

<%
Constr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database.mdb")
set cn = server.createobject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
cn.connectionstring=constr
cn.open

Rs.Open "SELECT * FROM questions", Cn,1,3
inDB = rs.RecordCount
If inDB > 5 then
  Randomize timer
  newId = Int (rnd*inDB)
  strIndex = "," & newid & ","
  indexFound = 1
  Do while indexFound <2
    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
     
    Response.write "" & rs("id") &"<br>"
    session("s"&i&"") = rs("id")
  next
end if

RS.Close
Set RS = Nothing
Cn.Close
Set Cn = Nothing
%>


Men den giver ikke de rigtige sessions... Det skal være sådan at man får: session("s1") = random number, session("s2") = random number, session("s3") = random number... osv op til 10...

De session navne skal være unikke heletiden, så hvis jeg skriver session("s10") i bunden af mit dokument, vil den give mig det tilfældige tal i session 10.

Kan nogen hjælpe mig med det?

Skrevet lør. d. 12. maj 2007 kl. 19:21:24| #4

flodhesten
flodhesten (13.705 point)
Bliver vist desværre ikke til noget.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

ASP: formular udtræk med mulighed for at rette

Oprettet den 21. maj 2012 kl. 15.09
quarkb giver 200 point for svar | Giv et svar »

Sorter biblioteker efter dato i ASP

Oprettet den 17. maj 2012 kl. 16.52
4ks giver 60 point for svar | Giv et svar »

Simpel login-funktion (web) - behov for flere logins/brugere

Oprettet den 15. maj 2012 kl. 09.54
madx giver 75 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger