Jag har ett problem igen.. med denna ¤#"% randomizen.
Jag vet hur man plockar fram en randomizad spelare.
Men hur plockar man fram flera?
Jag tänkte mig att det skulle bli nått sånt här.
Do until RS.EOF OR I = 7
brasql = "select * from player where spelare_agd_av = '"&nick&"'"
set spelare = databas.execute(brasql)
if not spelare.eof then
arr = spelare.getrows()
randomize
cnt = ubound(arr,2) + 1
s = int(cnt*rnd)
mal = arr(i,s)
(Sedan en update sats här)
RS.Movenext
Loop
Själva problemet ligger i mitt spel. där egentligen 7 är antalet gjorda mål, som är variabeln "gjordamal".
Men vi får inga spelare att skrivas ut för att ha gjort mål. Och icke assists heller, hoppas nån förstår problemet.. Tack
Varifrån kommer RS och hur får nick värdet? Nu gör utför du samma select flera gånger. Skall det vara flera spelare ägd av samma nick eller olika spelare.
Ja det ska kunna vara flera spelare som är ägd av samma nick. För det är ju mål i matcherna jag vill randomiza ut till spelarna man har i tabellen player.
Jag testade även den här..
sql = "select * from player where spelare_agd_av = '"&nick&"'"
Set RS = Databas.Execute(SQL)
I = 0
Do until RS.EOF or I = 7
Randomize
mal = Int(rnd*RS("id"))
I=I+1
(sedan en update sats här.)
RS.Movenext
Loop
Jag tycker den här randomize satsen är lättsammare att förstå =).
Men som sagt förrut så är jag ny på randomize, har inte full kläm på det hela ännu. Hoppas du förstår lite mer nu ialla fall. annars får du säga till
brasql = "select id from player where spelare_agd_av = '"&nick&"'"
set spelare = connect.execute(brasql)
if not spelare.eof then
arr = spelare.getrows()
cnt = ubound(arr,2) + 1
randomize
for i = 1 to 7
s = int(cnt*rnd)
sql = "update player set mal = mal + 1 where id = " & arr(0,s)
connect.execute sql,,128
next
end if
är det något sådant du vill ha. Nu är det 7 slumpvis utvalda spelare som får ett mål till. (Som det är nu så kan samma spelare bli framslumpad flera gånger.)
Ja, arr kommer att innehålla alla poster från select-satsen. Det är en tvådimensionell array där varje rad innehåller en post från tabellen.
funktionen Ubound(arr,2) returnerar det högsta indexet i arrayen. Eftersom första index är 0 så kommer då cnt att innehålla antalet rader som finns i arrayen.