15. august 2004 - 17:13Der er
8 kommentarer og 3 løsninger
tjekke svar i quiz
Hej jeg er ved at lave en slags quiz i PHP, hvor brugerne kan svare med fritekst input.
Min tabel består af følgende kolonner: question answer1 answer2 answer3 answer4 answer5 Hvor answer1-5 er forskellige, men alle rigtige, svarmuligheder.
Det var min ide at jeg via mySQL kunne tjekke om svaret var i nærheden af een af de 5 svarmuligheder
Noget i stil med: SELECT * FROM mytabel WHERE MATCH (answer1,answer2,answer3,answer4,answer5) AGAINST ($brugersvar IN BOOLEAN MODE)
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
SELECT * FROM `status` WHERE `answer1` OR `answer2` OR `answer3` OR `answer4` OR `answer5` = 'string'
'string' erstatter du med brugerens svar. Husk evt. også mysql_escape_string(), eksempelvis sådan her:
$answerQ = mysql_query("SELECT * FROM `status` WHERE `answer1` OR `answer2` OR `answer3` OR `answer4` OR `answer5` = '".mysql_escape_string($_POST['answer'])."'");
Hvis jeg altså har forstået dit spørgsmål rigtigt :)
er ikke glad for at bruge '=' da svaret jo så skal være helt eksakt - har derfor prøvet en kombination af jeres to svar: "SELECT * FROM mintabel WHERE qid = $id AND (answer1 LIKE '%$brugersvar%' OR answer2 LIKE '%$brugersvar%' OR answer3 LIKE '%$brugersvar%' OR answer4 LIKE '%$brugersvar%' OR answer5 LIKE '%$brugersvar%')";
Det virker tildels :-D men savner dog at svaret også kan betegnes som rigtigt i lidt specielle tilfælde som fx Q: Hvad hedder vores statsminister til fornavn? A: Anders Men hvis brugeren nu svare 'Han hedder Anders', så betegner ovenstående kode svaret for forkert
Derudover er der det problem at brugeren bare kan skrive 'j' til ja-nej spørgsmål og svaret vil betegnes som rigtigt!
alexander > Hvad gør du så hvis brugeren kun indtaster "e" for eksempel? Så vil den vel acceptere det som et rigtigt svar, da "e" højest sandsynligt indgår i mindst et af de forskellige, rigtige svarmuligheder.
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.