30. juli 2006 - 20:43Der er
6 kommentarer og 2 løsninger
randomize i function
Halløj, Jeg sidder og arbejder med denne randomize der ligger i en function - når jeg indsætter Show() 10 gange på en side viser siden mellem 0 og 10 udtræk (access) - hvordan kan det være? - den skulle jo gerne vise 10 hvergang :)
Function Show() Randomize RandNum = Int(Rnd * Ialt) + 1 Record.MoveFirst For i = 1 to RandNum - 1 Record.MoveNext next tekst = record("tekst") response.write tekst End Function
Det kan jeg ik' få til at virke - den skulle gerne bygge en tabel - kan jeg få dig til at vise mig det - her er koden...
<% Function Show() Randomize RandNum = Int(Rnd * Ialt) + 1 Record.MoveFirst For i = 1 to RandNum - 1 Record.MoveNext next desc = record("description") if len(desc)>100 then desc = left(desc,100) hea = record("headline") if len(hea)>25 then hea = left(hea,25) response.write "<td width=""33%"" valign=""top"" bgcolor=""" & scolor & """>" response.write "<font face=""arial"" size=""2""><b><a href=""shopinfo.asp?catid="&record("idcategory")&"&shopid="&record("id")&"" response.write """>" response.write "" & hea & "" response.write "</a></b></font><br><font face=""arial,verdana"" size=""-1"">" & desc & "" response.write "</font></td>" end if end if end function %>
<% dim i,results,record,sgl,rs dim cellString Set Rs = Server.CreateObject("ADODB.Connection") DBPath = "DBQ=" & server.mappath("/db/db.mdb") Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath Sql = "Select count(*) as Found from Banner where hosttype = 1" Set Record = Rs.Execute(Sql) Ialt = Record("found") response.write "Records: " & ialt Sql = "Select * from Banner where hosttype = 1" Set Record = Rs.Execute(Sql) if record.eof then response.write("Ingen records.") else Response.write "<table bgcolor=""ffcc00"" bordercolor=""FFFF00""" Response.write "border=""1"" width=""100%"" cellpadding=""4"" cellspacing=""1""><tr>" count=0 ci = 1 do while not record.eof If iswitch = TRUE then scolor = gsColorTWOfront iswitch = False Else scolor = gsColorONEfront iswitch = TRUE End If count=count+1 if count<=12 then '**************************** indsætter function her cellstring = show() if not ci mod 3 = 0 then response.write(cellString) else response.write (cellstring) Response.write "</tr><tr>" end if ci = ci + 1 end if record.movenext loop Response.write "</table>" end if %>
Randomize bør ikke være inde i funktionen. Hvis den er det, bliver den kaldt en gang hver gang funktionens kaldes. Randomize bør derimod kun kaldes *en* eneste gang totalt hvis den skal virke efter hensigten.
<% OpenDb inDB = rs.RecordCount Response.write "<div class=""cmenu""><table bgcolor=""ffcc00"" bordercolor=""FFFF00""" Response.write "border=""0"" width=""100%"" cellpadding=""4"" cellspacing=""1""><tr>" If inDB > 12 then Randomize timer newId = Int (rnd*inDB) strIndex = "," & newid & "," indexFound = 1 count=0 ci = 1 Do while indexFound <12 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 desc = rs("description") hea = rs("headline") if len(desc) > 120 then strDesc = left(desc, 120) & "..." else strDesc = desc end if if len(hea)>30 then strHea = left(hea,30) & "..." else strHea = hea end if If iswitch = TRUE then scolor = gsColorTWOfront iswitch = False Else scolor = gsColorONEfront iswitch = TRUE End If count=count+1 if count<=9 then cellstring = show() if not ci mod 3 = 0 then response.write(cellString) else response.write (cellstring) response.write "</tr>" end if ci = ci + 1 end if next end if Response.write "</table></div>" CloseDb %>
Synes godt om
Ny brugerNybegynder
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.