Någon som kan visa med ett enkelt exempel hur jag kan använda Randomize för att plocka ut slumpade poster ur en databas( ur en sqlfråga) ? Jag vill först förklara att jag är nybörjare på ASP så det finns kanske bättre sätt. Tack för att du tog dig tid , det ser ut som en ganska smidig metod du använder , jag ska plocka ut alla poster ur databasen som inte är äldre än 1 vecka , sedan ska jag välja ut 4stycken slumpade ur senaste veckans poster. Inga problem hade koden mitt framför näsan så det var kvickt att ta fram. Varför använda två recordset? Ska jag vara riktigt ärlig så fick jag inte det att fungera med ett recordset. Men när jag använde två så fungerade det.Randomize
Sv: Randomize
Men så här gjorde jag för att få utslumpat ett citat ur en acces-databas.
Det fungerar men det skulle vara bra om någon vet om det går att göra effektivare.
<%
'Öppnar databasen
Set Conn = Server.CreateObject("ADODB.Connection")
' Skapar en anslutning till databasen.
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("qoute.mdb")
'Öppnar ett recordset och tar reda på hur många poster databasen innehåller.
sql1 = "Select Count(nr) AS intCount from tblQoute"
Set rs1 = Conn.EXECUTE(sql1)
'Öppnar ännu ett recordset.
sql2 = "SELECT * FROM tblQoute"
Set rs2 = Conn.Execute(sql2)
'Slumpar fram ett tal mella noll och antalet poster i tabellen och flyttar den posten.
Randomize()
rs2.move (int(Rnd*(rs1("intCount"))))
'Stänger recordset1.
rs1.close
set rs1 = nothing
%>
<html>
<head>
</head>
<body>
<%=rs2("qoute")%>
<%=rs2("writer")%>
<%
'Stänger recordset2.
rs2.close
set rs2 = nothing
'Stänger databaskopplingen
conn.close
set conn = nothing
%>
</body>
</html>
/PeterSv: Randomize
Ska man ändå använda sig av count då eller? Vad tror du?
/MagnusSv: Randomize
Count tar reda på hur många poster det finns. Så det bör du kunna använda men ditt problem blir, antar jag, att du inte vill ha någon upprepning på dina tal. Alltså du vill inte att samma siffra ska slumpas fram fyra gånger i rad osv.
Det borde gå att lösa med en if-sats. Om talet har slumpats fram innan slumpa då fram ett nytt.
/PeterSv: Randomize
Du får ju reda på antalposter genom rs2.recordcountSv: Randomize
Det var en av anledningarna till att jag svarade, att se om det gick och göra smartare.
/Peter