Avatar billede Falentin Seniormester
30. november 2019 - 16:35 Der er 3 kommentarer

Spørgsmål i quiz via SQL (Python)

Hej
Jeg er i gang med at lave app, som indeholder en quiz. Spørgsmålene og svarmulighed ligger i en database fil (.db).

Jeg vil gerne have at hver gang brugeren trykker på en knap, så dukker det nye spørgsmål op og svarmuligheder i diverse knapper. Min udfordring er, at jeg kun kan hente et spørgsmål ad gangen fx ved hjælp af LIMIT. Nogen gode forslag?

Min kode til knappen, der henter spørgsmålene:

    def pressed_B(self, instance):
        c.execute("SELECT A,B,C,D from TextInQuiz LIMIT 1;")
        rows = c.fetchall()
        for row in rows:
            self.Answer_A.text = row[0]
            self.Answer_B.text = row[1]
            self.Answer_C.text = row[2]
            self.Answer_D.text = row[3]

Selve Grid (blot til info):
        self.Answer_B = Button(text=Answer_B, font_size=40)
        self.Answer_B.bind(on_press=self.pressed_B)
        self.add_widget(self.Answer_B)
Avatar billede claes57 Ekspert
30. november 2019 - 19:07 #1
Du har en id på hvert spg - så lav en cookie (evt lokalt hos dig på ip-adresse) med de valgte spg indtil nu, og test, at næste spg ikke er i listen (ellers vælg en gang til).
Hvis du har fx 1000 spg, så slet brugers liste når de når 750 poster (bare for at vælge en ramme)
Avatar billede Falentin Seniormester
30. november 2019 - 19:13 #2
Jeg glemte at skrive at jeg bruger sqlite i python, så alt gemmes lokalt. Kan jeg også bruge en cookie der?
Avatar billede claes57 Ekspert
30. november 2019 - 19:32 #3
Jeg ville lave en tabel med IP-adresse og spgnummer, og via den sikre, at samme spg ikke dukker op indenfor en rimelig tid. Det er hurtigt at slå op i.
En cookie ligger ved browserdata hos bruger, så du skal læse filen og løbe den igennem ved hver spg. Her er et ekstra opslag i din database bedre. Bruger kan også sige nej til cookies via browser, og så taber du den smule styring...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester