roadyMedlem sedan jan. 2002473 inlägg jag har kollat runt på en massa slumpningar, men mitt problem är att folk kan lägga till och ta bort posterna i databasen, därför blir det "hål" i räknaren i databasen.
typ:
1
2
5
6
7
10
13
14
osv....
hur fixar man en slumpning som funkar på det ? :q
behöver bara ha ut ett värde!
crisse6Medlem sedan dec. 20002 526 inlägg vad menar du? Den slumpar ju bara fran dom som finns.... vanta ska ge dig exempel pa slumpning fran db... ;)
crisse6Medlem sedan dec. 20002 526 inlägg kolla denna sida... mycket bra kod av LarsG, slumpar iofs 5, men latt att andra, skriv om du far problem ;)
http://www.webforum.nu/showthread.php?s=&postid=86465#post86465
MacceMedlem sedan apr. 2001425 inlägg Varför slumpa ? Det är väl bättre att du bygger en loop
som går igenom en getrows-array och väljer det lägsta lediga
id:t och gör en insert där.
Av vilken anledning vill du få bort "hålen" i db:n ?
mvh
PatrikBMedlem sedan mars 20002 836 inlägg detta är ett annat sätt:
<%
Option Explicit
Dim strSQLrnd
Dim rstRand
Dim intTotalRecs
Dim intRndPost
Dim strSlumpPost
'## -- nytt frö för slumpning --
Randomize
'## -- sql-fråga att slumpa från --
strSQLrnd = "SELECT * FROM tbl_table"
'## -- skapa recordset som ska hålla posterna att slumpa från --
Set rstRand = Server.CreateObject("ADODB.Recordset")
With rstRand
.Source = strSQLrnd
.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/db/my_db.mdb")
.CursorLocation = 3
.CursorType = 1
.LockType = 3
.Open
.ActiveConnection = Nothing
If Not .EOF Then
intTotalRecs = .RecordCount
intRndPost = CInt(rnd*(intTotalRecs - 1))
'## -- förflytta recordset markören till slumpat värde --
.Move intRndPost
'## -- spara det slumpade värdet till variabel --
strSlumpPost = .Fields(0).Value
Else
'## -- inga poster fanns --
End if
'## -- stäng recordsetet --
.Close
End With
'## -- clean up minnet --
Set rstRand = Nothing
%>
<html>
<head>
<title>Slumpa från DB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<%
Response.Write "Antal poster: " & intTotalRecs & _
"<br>Slumpvärde: " & intRndPost & _
"<br>Slumpat ID: " & strSlumpPost
%>
</body>
</html>
ändra sövägen till databasen och sql-frågan så att det stämmer för din db
cya,
PatrikB
roadyMedlem sedan jan. 2002473 inlägg jag har inte riktigt greppat detdär med slumpningen, när jag själv gjort så får jag en massa ID:s som inte finns. Det var därför jag talade om dessa "hål", inget som jag ville ta bort utan de finns ju bara där ;)
Men nu funkar det kanon ju! Får bara nummer som existerar i databasen.
tack för den eminenta hjälpen :bire
danisMedlem sedan aug. 2002157 inlägg det är bättre att slumpa direkt från databasen. mkt enklare
@ndersMedlem sedan juni 200032 969 inlägg Om det är enklare att slumpa direkt från databasen skulle det uppskattas med kodexempel. I MySQL kan man enkelt göra det, men i andra dbms?