Just nu i M3-nätverket
Jump to content

Slumpa post ur MySQL databas


MML

Recommended Posts

Hej

 

har läst och läst men fattar inte varför detta script inte funkar.

Jag får värdet -1 på Rand_nr och Antal

strSQL = "SELECT lopnr, namn, enamn FROM tblTest"
Set Rs = objConn.Execute(strSQL)

If Rs.EOF Then
Response.Write "Inga poster att slumpa än.."
Rs.Close : Set Rs = Nothing

Else
With Rs
.Close
.Cursortype=3
.Open
End With
Antal = Rs.RecordCount

Randomize
Rand_nr = Int(Rnd * Antal)

Rs.Move Rand_nr

Response.Write ""&Antal & ""
Response.Write ""&Rand_nr & ""

Response.Write " "&Rs("id")&". "&Rs("namn")&", "&Rs("enamn")&" "
Rs.Close : Set Rs = Nothing

End If

 

KOD-taggar tillagda av moderator

 

[inlägget ändrat 2009-01-11 17:38:44 av Cluster]

Link to comment
Share on other sites

Else
With Rs
.Close
.Cursortype=3
.Open
End With

 

Skall man verkligen stänga Recordsetet för att öppna det igen?

Kan du inte sätta Cursortype direkt eller använda getRows istället och få antal svar därfrån?!

 

Link to comment
Share on other sites

Varför inte använda rand() i mysql istället för i ASP? Det jag menar är att man ska be databasen att returnera det man vill ha, istället för att hämta allt och sen manuellt göra nåt halvskumt filter.

 

select ID,Namn,rand() AS slump from table1

order by rand()

limit 1

 

Detta ger alltid en enda post som svar och det är den som vid just det tillfället har det minsta värdet i kolumnen "slump".

 

(visserligen inte 100% korrekt, eftersom det rand()-värde som finns i SELECT-satsen inte har någon som helst betydelse, man behöver inte ens ange det. Det är det som ORDER BY använder som är det intressanta.)

[inlägget ändrat 2009-01-13 00:06:50 av Mr Andersson]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...