Avatar billede komputerdk Mester
06. juni 2004 - 18:22 Der er 2 kommentarer og
1 løsning

quiz fra database med random svar

hi, jeg har en database med (929):

-id (primary key)
- spørgsmål
- det rigtige svar

jeg vil nu lave en side hvor man kan tage en quiz (man vælger ud af tre muligheder ud fra et spørgmål/sætning der skal oversættes). fx. BIOS = Basic Input.....

Problemet er følgende:

1) hvordan får jeg lavet opslag så den finder 2 svar (udover det rigtige ) der MINDER om spørgsmålet, så f.eks. hvis ordet banan indgår så søger den efter andre spørgsmål med ordet banan (og vælger deres "rigtige svar" der så bliver de 2 forkerte). Har tænkt på noget a la :

/* q_max = antal spørgsmål
  q_id = det spørgsmål som vi er igang med */


$q_max= mysql_query("SELECT MAX(id) FROM database");

$q_id = rand(1,$q_max);

$question = mysql_query("SELECT question,c_answer FROM database WHERE id=$q_id");

$alt = mysql_query("SELECT c_answer FROM database WHERE $question['question'] LIKE '%' AND id <> $q_id");

Så hvis der ikke er nogen

IF (!$alt)
    {
    $a_id1=rand(1,$q_max);
    $a_id2=rand(1,$q_max);
    $alt1= mysql_query("SELECT c_answer FROM database WHERE id=$a_id1");
    $alt2= mysql_query("SELECT c_answer FROM database WHERE id=$a_id2");
    ]

2) hvordan får jeg lavet en side der kan så den viser det ene spørgsmål og tre muligheder der står tilfældigt (og kun den ene er rigtig) , så når man har valgt viser den det rigtige....

3) mindre vigtigt , en score eller lign..
Avatar billede jakoba Nybegynder
06. juni 2004 - 18:51 #1
Det er svært. Meget sværere end det ser ud til. Både spørgsmål og svar skal udvælges meget omhyggeligt for at undgå bommerter som fx:
Q:  Hvem var Asta Nielsen
  1:  En skuespillerinde
  2:  En kvinde
  3:  Dansk filmproducent fra 1920'erne
(alle 3 svar er korrekte, og så bliver dem der valgte et af de 2 andre svar sure)

Så jeg ville nok enten fatsætte både det korrekte og de 2 forkerte i databasen. Eller også (for a få mere variation) det korrekte + 6-8 forkerte som jeg har checket ikke duer som svar på det spørgsmål. det kunne implementeres rimeligt billigt med 2 tabeller:

table t_spoergsmaal
    id
    sporgsmaal
    svar_id
    fejl1_id
    fejl2_id
    fejl3_id
    fejl4_id
    fejl5_id
    fejl6_id
    fejl7_id

tabel t_svar
    id
    svartekst

men altså: de forkerte svar til hvert spørgsmål bør vælges manuelt. Ellers risikerer du at bede brugeren vælge imellen 2 eller 3 korrekte svar.

mvh JakobA
Avatar billede komputerdk Mester
06. juni 2004 - 18:58 #2
well det er en liste over nogle ord / udtryk der oversættes.. det skal ses lidt som en ordbog.. så der er ikke nogen svar/spørgsmål der er ens (den anden løsning er også mulig, men ville slippe for at opdatere hele databasen en gang til...).. der er kun ord der indgår i samme "kategori".. ideen er bare at det skal være simpelt at kode....
Avatar billede komputerdk Mester
11. maj 2008 - 13:26 #3
luk
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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