Permalänk
Medlem

Random post ur Accessdatabas?

Försöker hämta en random post ur en Accessdatabas med följande SQL-sträng:
RecSet.Open "Select top 1 * FROM horoskop where typ = " & siffra & " ORDER BY Rnd()", Connect, 1, 3

Resultatet blir dock alltid samma... alltså samma ord som "slumpas" ut varje gång.

Läste någonstans att det beror på att Access alltid kör samma random-sekvens eller något konstigt. Någon som vet hur man får ordentlig oordning?

ASP jag kodar förresten...

http://www.bananhuset.se/horoskop.asp är sidan som jag försöker slumpa fram.

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Du måste använda "Randomize" för att seeda den med datorns klocka.

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av MagnusL
Du måste använda "Randomize" för att seeda den med datorns nuvarande tid ..

Du har inte lust att utveckla det där... för jag förstår nämligen inget alls.

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av HappySatan
Du har inte lust att utveckla det där... för jag förstår nämligen inget alls.

Skriv "Randomize" innan du kör random sakerna (ska endast köras 1 gång) .. om man inte seedar så kommer den alltid generera samma sekvens varje gång koden körs.

http://en.wikipedia.org/wiki/Pseudorandom_number_generator

Det som Randomize gör att den seedar PRNG:n med datorns klocka .. vilket duger i många fall ..

Visa signatur

Intel Core i7-3770K | NVIDIA Geforce GTX 980 | 16 GB DDR3 | DELL P2415Q | DELL U2711 | DELL U2410

Permalänk
Medlem

Utan att förstå så mycket mer körde jag in ett ensamt "Randomize" (utan citattecken) på en egen rad precis ovanför SQL-strängen. Ingen lycka med det dock...

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Låt säga att du har en tabell med en ränkare som heter id, din kolumn typ och till sist ett textfält som heter horoskoptext då skulle du kunna köra med.

<% Randomize() intRand = Int (1000*Rnd)+1 RecSet.Open "Select top 1 id, typ, horotext, slump = Rnd(" & intRand & ") FROM horoskop where typ = " & siffra & " ORDER BY slump", Connect, 1, 3 %>

Otestat men om det inte skulle fungera så skrik till.

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av xtermin8
Låt säga att du har en tabell med en ränkare som heter id, din kolumn typ och till sist ett textfält som heter horoskoptext då skulle du kunna köra med.

Otestat men om det inte skulle fungera så skrik till.

*skriker till*
Ser snyggt ut det där, får dock ett felmeddelande som säger:
"No value given for one or more required parameters.

/horoskop.asp, line 11"

Koden, som jag implementerat den ser hur såhär

Function get_word(siffra) Randomize() intRand = Int (1000*Rnd)+1 RecSet.Open "Select top 1 id, typ, ord, slump = Rnd(" & intRand & ") FROM horoskop where typ = " & siffra & " ORDER BY slump", Connect, 1, 3 ord = RecSet("ord") RecSet.close get_word = ord END Function

Och tabellen horoskop innehåller ID[räknare] typ[int] samt ord[text]...

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Ojdå får skylla på kaffebrist eller något tror man måste ha med en kolumn som parameter till rnd() i sql. Testa att köra så här istället

Function get_word(siffra) Randomize() intRand = Int (1000*Rnd)+1 RecSet.Open "Select top 1 id, typ, ord, Rnd(" & -1 * (intRand) & "*id) FROM horoskop where typ = " & siffra & " ORDER BY 4", Connect, 1, 3 ord = RecSet("ord") RecSet.close get_word = ord END Function

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av xtermin8
Ojdå får skylla på kaffebrist eller något tror man måste ha med en kolumn som parameter till rnd() i sql. Testa att köra så här istället

Underbart, du är en sann nationalhjälte! Stort tack!

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Haha här har man svept öl halva dagen och sen blir man kallad nationalhjälte. Could life be any better

Edit: är det ölen eller är horoskopen något suspekta?

Citat:

"Du kommer att snubbla på en fransk och aningslös lustig figur på estlandsfärjan, denne kommer du sedan att bryta benet på.

Dessförinnan kommer du dock att luras att bygga korthus på grund av din hungriga katt"

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av xtermin8
Haha här har man svept öl halva dagen och sen blir man kallad nationalhjälte. Could life be any better

Edit: är det ölen eller är horoskopen något suspekta?

Jag är övertygad om att det är stjärnorna som avgör vad som står där

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Du kanske skulle plantera en liten kaka så att man får samma horoskop om man kollar samma dag.

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av xtermin8
Du kanske skulle plantera en liten kaka så att man får samma horoskop om man kollar samma dag.

Jo, det är sant... men tråkigt som jag är tycker jag det är väldigt roligt att sitta och uppdatera och fnittra åt mitt eget påhitt

Visa signatur

Modermodem från ONOFF och bildskärmsutrustning från Electrolux. US Robotics 28.8K telefonuppringd internetförbindelse. Har en förkärlek för tysk tjejpop.

Permalänk
Medlem

Självfallet men du fixar du lätt med en if sats som kollar om anropet kommer från ditt ip

Visa signatur