Just nu i M3-nätverket
Gå till innehåll

Slumpa post ur MySQL databas


MML

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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?!

 

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...