Mja, nästan. Access har lite "trubbel" med slumpning, så vi får hjälpa till på traven. Hjälpen ger vi med asp-kod, men det går såklart att använda vilket språk man vill.
Eftersom jag inte använder access så är följande dock bara en gissning:
Randomize()
intRnd = -1*(Int (1000*Rnd)+1)
strSQL = "SELECT ID, fld1, fld2, RND(" & intRnd & "*ID) FROM tbl WHERE ID > 0.5*(fld1/fld2) ORDER BY 4"
Jag förstår inte riktigt varför ID är efter WHERE.
Jag kanske felformulerade mig lite. Jag har 2 kolumner (Som jag kallar "Shown" och "Correct") och jag vill dela Shown på Correct och om resultatet av det blir över 50% så vill jag slumpa bland dom ID nummrerna. (Det är en loop)
Nu använder jag detta för att slumpa ut talen och jag tycker den funkar ganska bra, men jag ska testa den du skrev med. Jag hade rejält med problem med slumpen..
Randomize
R=clng(1E6*rnd)
strSQL = "SELECT ID, Typ, Datum, Shown, Correct FROM words WHERE Addedby = 'Danielkun' ORDER BY rnd(-(1000*ID)* " & R & ")"
Jag testade att köra detta men jag får varken ut det jag vill eller nått fel
strSQL = "SELECT ID, Typ, Datum, Shown, Correct FROM words WHERE Addedby = 'Danielkun' AND ((Correct/Shown)*100) > 50 ORDER BY rnd(-(1000*ID)* " & R & ")"
Jag har byggt en språktest som slumpar bland ord. Om man skriver in den rätta översättningen för ordet så plussas det på med 1 i "shown" och "correct" för just det ordet.
Men om man inte skriver in rätt ord så plussas det bara på med 1 i "shown"
Nu vill jag göra så att man kan välja att bara slumpa bland de lätta orden. dvs dom orden som man tidigare klarat av mer än 50%
Jag vill endast slumpa bland:
if Round((Correct/Shown)*100) >= 50 then
Jag fick ändra (shown/correct) till (correct/shown).
Sen får jag "Spill" fel om shown = 0, men jag får se till att lägga in en 1'a när jag sparar ner ordet så är det löst!
Tack för hjälpen!!!!!!!!!! :)
/RED. JAg bara undrar men slumpar SQL först och sen räknar ut talet eller räknar den ut alla tal först och sen slumpar?
Självklart ska det vara correct/shown, det var bara jag som klantade mig lite.
Jag tycker inte att du ska spara en etta när du lagrar ordet, för det stämmer ju inte. Hur ska det hanteras när ordet inte har visats? Ska det hämtas ut med denna fråga?
Fast om jag har 0 så får jag ju fel i SQL satsen, så jag minskar shown med 1 när jag laddar ur databasen istället. Då visas det ju rätt på sidan men databasen kommer att ha 1 för mycket.
Dom här talen är bara till för extra information om just det ordet så jag har inga andra funktioner baserade på dem
Du hade rätt @nders. Det blev faktist mer strul än jag tänkt mig :(
SQL satsen ger andra procent värden av vad det igentligen är så resultaten blir fel. Hur skulle man gå till väga om man vill få SQL frågan att klara en nolla i Shown fältet?
Eftersom ordet aldrig visats så ska det ge resultatet 0