Trouw spel :)
Ik heb wel wat ervaring met php maar wat ik nu graag wil gaat eigenlijk boven mij pet. Vandaar dat ik gezocht heb naar een php script voor dit spel. helaas heb ik dit niet kunnen vinden. Vandaar mijn post hier.
Ik ben op zoek naar een trouwspel waarbij bezoekers een vraag voorgesteld krijgen. Nadat ze hun keuze bepaald hebben..krijgen ze te zien of het goed of fout is en wat het antwoord is.
Nadat alle vragen gesteld zijn, zou het leuk zijn als er een overzicht komt met hoeveel vragen ze goed hebben. En een top 10 ofzo met de mensen. (ze moeten dus ook hun naam kunnen invoeren.) Daarnaast is het leuk als ze dan tussen een bepaalde aantal goede antwoorden zitten dat ze dan een tekst krijgen. bijv:
van de 10 vragen max3 goed: "ben jij een vriend van ons?"
van de 10 vragen max 8 goed: "jij bent een echt vriend
etc etc...
Kent iemand zo'n soort script..of misschien vind iemand het leuk om zo'n script te maken. Misschien een eerste opzet dat ik het verder kan een beetje kan uitwerken.
Alvast bedankt
Gewijzigd op 11/10/2005 13:26:00 door Sander
Maak is een begin met een script tot hoever je komt en dan gaan we je zeker verder helpen!!!
Suc6 met je opzet!!
Groet, lissy
Ik hoop dat iemand mij weer een opze kan verschaffen zodat ik die weer kan afmaken naar mijn wensen.
bedankt
Hier is een opzetje voor het Trouw spel. Het enige wat je hoeft te doen is de antwoorden veranderen in je eigen antwoorden en een formuliertje maken. De top 10 moet je ook zelf scripten.
Je kan eventueel ook nog een cookie op de PC van degene die het invult achterlaten met daarin een tekenreeks die betekent dat hij/zij dit al heeft gedaan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$naam = htmlentities($_POST['naam']);
$antwoord['1'] = "Jouw antwoord";
$antwoord['2'] = "Jouw antwoord";
$antwoord['3'] = "Jouw antwoord";
$antwoord['4'] = "Jouw antwoord";
$antwoord['5'] = "Jouw antwoord";
$ingevuld['1'] = htmlentities($_POST['1']);
$ingevuld['2'] = htmlentities($_POST['2']);
$ingevuld['3'] = htmlentities($_POST['3']);
$ingevuld['4'] = htmlentities($_POST['4']);
$ingevuld['5'] = htmlentities($_POST['5']);
$aantalgoed = "0";
if ($antwoord['1'] == $ingevuld['1']) {
$aantalgoed++;
}
if ($antwoord['2'] == $ingevuld['2']) {
$aantalgoed++;
}
if ($antwoord['3'] == $ingevuld['3']) {
$aantalgoed++;
}
if ($antwoord['4'] == $ingevuld['4']) {
$aantalgoed++;
}
if ($antwoord['5'] == $ingevuld['5']) {
$aantalgoed++;
}
echo "Beste, " .$naam. ". Je had " .$aantalgoed. " vragen goed";
?>
$naam = htmlentities($_POST['naam']);
$antwoord['1'] = "Jouw antwoord";
$antwoord['2'] = "Jouw antwoord";
$antwoord['3'] = "Jouw antwoord";
$antwoord['4'] = "Jouw antwoord";
$antwoord['5'] = "Jouw antwoord";
$ingevuld['1'] = htmlentities($_POST['1']);
$ingevuld['2'] = htmlentities($_POST['2']);
$ingevuld['3'] = htmlentities($_POST['3']);
$ingevuld['4'] = htmlentities($_POST['4']);
$ingevuld['5'] = htmlentities($_POST['5']);
$aantalgoed = "0";
if ($antwoord['1'] == $ingevuld['1']) {
$aantalgoed++;
}
if ($antwoord['2'] == $ingevuld['2']) {
$aantalgoed++;
}
if ($antwoord['3'] == $ingevuld['3']) {
$aantalgoed++;
}
if ($antwoord['4'] == $ingevuld['4']) {
$aantalgoed++;
}
if ($antwoord['5'] == $ingevuld['5']) {
$aantalgoed++;
}
echo "Beste, " .$naam. ". Je had " .$aantalgoed. " vragen goed";
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Om de code in te perken zou ik wel een for-loopje maken.
Code (php)
Ik weet het, misschien een mierenneuker, maar is toch minder typewerk ;)
http://www.hotscripts.com/PHP/Scripts_and_Programs/Tests_and_Quizzes/index.html
Daar vind je een heleboel quiz-scripts!
Daar vind je een heleboel quiz-scripts!
Maar volgens mij wil Sander juist zelf zo'n script maken, en niet eentje van Internet afhalen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?
// Defineren van de vars
$goed = 0;
$fout = 0;
// Bereken de score van de gebruiker
if($_POST['stuurIn'])
{
// Kijk de vragen na
for($a=0; $a<15; $a++)
{
// Kijken of de vraag goed is beantwoord
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
$goed ++; else $fout ++;
}
// Melding van het resultaat van de deelnemer
echo "<span class='questionHead'>Beste " .$_POST['gebruikersnaam']. ",</span><br><br>";
echo "Je hebt <span class='questionHead'>" .$goed. "";
// Het juist printen van vraag en vragen
if($goed == 1)
{
echo " vraag ";
}
else
{
echo " vragen ";
}
echo "</span> goed en <span class='questionHead'>" .$fout. "";
// Het juist printen van vraag en vragen
if($fout == 1)
{
echo " vraag ";
}
else
{
echo " vragen ";
}
echo "</span> vragen fout beantwoord. Om precies te zijn heb je dus ";
// Juist printen van het % aantal als de deelnemer niks goed heeft
if(!$goed == 0)
{
$printG = $goed;
}
// Juist printen van het % aantal als de deelnemer niks goed heeft
if(!$fout == 0)
{
$printF = $fout;
}
echo "" .$printG. "van de vragen goed en " .$printF. "van de vragen fout beantwoord. Dit betekend dat je als eindcijfer een <span class='questionHead'>" .$goed. "</span> heb gescoord.<br><br>";
// Het toevoegen van de naam van de deelnemer en zijn resultaat in de database
$QueryOntwerp = "INSERT INTO resultaten VALUES('', '".$_POST['gebruikersnaam']."', '" .$goed. "')";
mysql_query($QueryOntwerp) or die(mysql_error());
// Het printen van de beoordeling van de deelnemer
echo "<span class='questionHead'>Je beoordeling:</span> ";
// Als de deelnemer er 5 of minder goed heb
if($goed <= 5)
{
echo "Nouw " .$_POST['gebruikersnaam']. ", je resultaat is niet zo best je moet echt nog meer aan je Hudito JA1 kennis doen.";
}
elseif($goed >= 6 && $goed <= 8)
{
echo "Tsja, " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is matig...";
}
elseif($goed >= 9 && $goed <= 11)
{
echo "Goed gedaan " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is redelijk goed.";
}
elseif($goed >= 12 && $goed <=14)
{
echo "Klasse " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is erg goed.";
}
// Als de deelnemer alles goed heeft
elseif($goed == 15)
{
echo "Gefeliciteerd " .$_POST['gebruikersnaam']. ", Een echte Hudito JA1 kenner! Je hebt geen 1 fout gemaakt.";
}
// Overzicht van de vragen + antwoorden van de deelnemer en de juiste antwoorden
echo "<br><br><br><span class='questionHead'> Hier volgt een overzicht van je resultaat.</span><br><br>";
// Haal vraag 1 tot 10 uit de array
for($a=0; $a<15; $a++)
{
// Kijken of hij goed is beantwoord
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
{
$class = "green";
}
else
{
$class = "red";
}
// Vormgeven van de weergave
echo "<table cellpadding='4' cellspacing='0' border='0' style='width:600px;' class='table'>";
echo "<tr><td bgcolor='#efefef' onmouseover=bgColor='#cccccc'; onmouseout=bgColor='#efefef'; class='$class' style='width:500px;'>";
echo $_SESSION['VraagAntwoord'][$a]['vraag'];
echo "Juiste antwoord: " .$_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].'']. "";
echo "<br>Jouw antwoord: ";
// Printen van melding als er geen antwoord is opgegeven
if($_POST['antw' .$a. ''] == "")
{
echo " Geen antwoord ingevuld.";
}
else
{
echo $_POST['antw' .$a. ''];
}
echo "</td>";
echo "<td style='width:100px;'>";
// Het tonen van een krul of kuis
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
{
echo "<img src='img/correct.jpg'>";
}
else
{
echo "<img src='img/incorrect.jpg'>";
}
echo "</td></tr>";
echo "</table><br>";
}
}
// Als er nog niet op bereken score is gedrukt dan...
else
{
// Het ontwerpen van de query
$QueryOntwerp = "SELECT vragen.vraag,
vragen.antwoord,
antwoorden.a,
antwoorden.b,
antwoorden.c,
antwoorden.d
FROM vragen, antwoorden
WHERE vragen.id = antwoorden.id
ORDER BY rand()
limit 0,15
";
// Voer de query uit
$QueryResultaat = mysql_query($QueryOntwerp) or die(mysql_error());
// Zet de teller op 1
$count = 1;
// Begin tags van het form
echo "<form action='quiz.php' method='post' name='quiz' onsubmit='return CheckVelden();'>";
// Print de vraag
echo "<span class='questionHead'>Vul eerst je naam in en maak daarna de vragen.</span><br>";
// Email en gebruikersnaam invoer veld
echo "Naam: <input type=\"text\" name=\"gebruikersnaam\" value=\".......................................\" onclick=\"if(this.value=='.......................................')this.value='';\"><br><br>";
// Defineer een nieuwe array voor de vragen en antwoorden
$VraagAntwoordArray = array();
// Loop door al de resultaten
while ($show = mysql_fetch_array($QueryResultaat))
{
// Print het vraag nr en de vraag zelf
echo "<span class='questionHead'>" .$count. ") " .$show["vraag"]. "</span><br>";
// Het samenstellen van een juist vraag nr want een array begint bij 0 ipv 1
$CountAntw = $count-1;
// Print de 4 antwoorden
echo "<input type='radio' value='$show[a]' name='antw$CountAntw'> " .$show['a']. "<br>";
echo "<input type='radio' value='$show[b]' name='antw$CountAntw'> " .$show['b']. "<br>";
echo "<input type='radio' value='$show[c]' name='antw$CountAntw'> " .$show['c']. "<br>";
echo "<input type='radio' value='$show[d]' name='antw$CountAntw'> " .$show['d']. "<br><br>";
// Initialiseer het JUISTE resultaat
$resultaat['vraag'] = "<span class='questionHead'>" .$count. ") " .$show["vraag"]. "</span><br>";
$resultaat['antwoord'] = $show['antwoord'];
// Het opslaan van de text van de 4 antwoorden
$resultaat['antwa'] = $show['a'];
$resultaat['antwb'] = $show['b'];
$resultaat['antwc'] = $show['c'];
$resultaat['antwd'] = $show['d'];
// Voeg het JUISTE resultaat toe aan de array
array_push($VraagAntwoordArray, $resultaat);
// Zet de JUISTE resultaat array in een session
$_SESSION['VraagAntwoord'] = $VraagAntwoordArray;
// Klaar stomen van het volgende vraag nummer
$count ++;
}
// De knop om je antwoorden in de sturen
echo "<input type='submit' onclick='javascript:CheckVelden();' value='Stuur je antwoorden in' name='stuurIn'>";
// Eind tag van het form
echo "</form>";
}
?>
// Defineren van de vars
$goed = 0;
$fout = 0;
// Bereken de score van de gebruiker
if($_POST['stuurIn'])
{
// Kijk de vragen na
for($a=0; $a<15; $a++)
{
// Kijken of de vraag goed is beantwoord
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
$goed ++; else $fout ++;
}
// Melding van het resultaat van de deelnemer
echo "<span class='questionHead'>Beste " .$_POST['gebruikersnaam']. ",</span><br><br>";
echo "Je hebt <span class='questionHead'>" .$goed. "";
// Het juist printen van vraag en vragen
if($goed == 1)
{
echo " vraag ";
}
else
{
echo " vragen ";
}
echo "</span> goed en <span class='questionHead'>" .$fout. "";
// Het juist printen van vraag en vragen
if($fout == 1)
{
echo " vraag ";
}
else
{
echo " vragen ";
}
echo "</span> vragen fout beantwoord. Om precies te zijn heb je dus ";
// Juist printen van het % aantal als de deelnemer niks goed heeft
if(!$goed == 0)
{
$printG = $goed;
}
// Juist printen van het % aantal als de deelnemer niks goed heeft
if(!$fout == 0)
{
$printF = $fout;
}
echo "" .$printG. "van de vragen goed en " .$printF. "van de vragen fout beantwoord. Dit betekend dat je als eindcijfer een <span class='questionHead'>" .$goed. "</span> heb gescoord.<br><br>";
// Het toevoegen van de naam van de deelnemer en zijn resultaat in de database
$QueryOntwerp = "INSERT INTO resultaten VALUES('', '".$_POST['gebruikersnaam']."', '" .$goed. "')";
mysql_query($QueryOntwerp) or die(mysql_error());
// Het printen van de beoordeling van de deelnemer
echo "<span class='questionHead'>Je beoordeling:</span> ";
// Als de deelnemer er 5 of minder goed heb
if($goed <= 5)
{
echo "Nouw " .$_POST['gebruikersnaam']. ", je resultaat is niet zo best je moet echt nog meer aan je Hudito JA1 kennis doen.";
}
elseif($goed >= 6 && $goed <= 8)
{
echo "Tsja, " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is matig...";
}
elseif($goed >= 9 && $goed <= 11)
{
echo "Goed gedaan " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is redelijk goed.";
}
elseif($goed >= 12 && $goed <=14)
{
echo "Klasse " .$_POST['gebruikersnaam']. ", je Hudito JA1 kennis is erg goed.";
}
// Als de deelnemer alles goed heeft
elseif($goed == 15)
{
echo "Gefeliciteerd " .$_POST['gebruikersnaam']. ", Een echte Hudito JA1 kenner! Je hebt geen 1 fout gemaakt.";
}
// Overzicht van de vragen + antwoorden van de deelnemer en de juiste antwoorden
echo "<br><br><br><span class='questionHead'> Hier volgt een overzicht van je resultaat.</span><br><br>";
// Haal vraag 1 tot 10 uit de array
for($a=0; $a<15; $a++)
{
// Kijken of hij goed is beantwoord
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
{
$class = "green";
}
else
{
$class = "red";
}
// Vormgeven van de weergave
echo "<table cellpadding='4' cellspacing='0' border='0' style='width:600px;' class='table'>";
echo "<tr><td bgcolor='#efefef' onmouseover=bgColor='#cccccc'; onmouseout=bgColor='#efefef'; class='$class' style='width:500px;'>";
echo $_SESSION['VraagAntwoord'][$a]['vraag'];
echo "Juiste antwoord: " .$_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].'']. "";
echo "<br>Jouw antwoord: ";
// Printen van melding als er geen antwoord is opgegeven
if($_POST['antw' .$a. ''] == "")
{
echo " Geen antwoord ingevuld.";
}
else
{
echo $_POST['antw' .$a. ''];
}
echo "</td>";
echo "<td style='width:100px;'>";
// Het tonen van een krul of kuis
if($_SESSION['VraagAntwoord'][$a]['antw'.$_SESSION['VraagAntwoord'][$a]['antwoord'].''] == $_POST['antw' .$a. ''])
{
echo "<img src='img/correct.jpg'>";
}
else
{
echo "<img src='img/incorrect.jpg'>";
}
echo "</td></tr>";
echo "</table><br>";
}
}
// Als er nog niet op bereken score is gedrukt dan...
else
{
// Het ontwerpen van de query
$QueryOntwerp = "SELECT vragen.vraag,
vragen.antwoord,
antwoorden.a,
antwoorden.b,
antwoorden.c,
antwoorden.d
FROM vragen, antwoorden
WHERE vragen.id = antwoorden.id
ORDER BY rand()
limit 0,15
";
// Voer de query uit
$QueryResultaat = mysql_query($QueryOntwerp) or die(mysql_error());
// Zet de teller op 1
$count = 1;
// Begin tags van het form
echo "<form action='quiz.php' method='post' name='quiz' onsubmit='return CheckVelden();'>";
// Print de vraag
echo "<span class='questionHead'>Vul eerst je naam in en maak daarna de vragen.</span><br>";
// Email en gebruikersnaam invoer veld
echo "Naam: <input type=\"text\" name=\"gebruikersnaam\" value=\".......................................\" onclick=\"if(this.value=='.......................................')this.value='';\"><br><br>";
// Defineer een nieuwe array voor de vragen en antwoorden
$VraagAntwoordArray = array();
// Loop door al de resultaten
while ($show = mysql_fetch_array($QueryResultaat))
{
// Print het vraag nr en de vraag zelf
echo "<span class='questionHead'>" .$count. ") " .$show["vraag"]. "</span><br>";
// Het samenstellen van een juist vraag nr want een array begint bij 0 ipv 1
$CountAntw = $count-1;
// Print de 4 antwoorden
echo "<input type='radio' value='$show[a]' name='antw$CountAntw'> " .$show['a']. "<br>";
echo "<input type='radio' value='$show[b]' name='antw$CountAntw'> " .$show['b']. "<br>";
echo "<input type='radio' value='$show[c]' name='antw$CountAntw'> " .$show['c']. "<br>";
echo "<input type='radio' value='$show[d]' name='antw$CountAntw'> " .$show['d']. "<br><br>";
// Initialiseer het JUISTE resultaat
$resultaat['vraag'] = "<span class='questionHead'>" .$count. ") " .$show["vraag"]. "</span><br>";
$resultaat['antwoord'] = $show['antwoord'];
// Het opslaan van de text van de 4 antwoorden
$resultaat['antwa'] = $show['a'];
$resultaat['antwb'] = $show['b'];
$resultaat['antwc'] = $show['c'];
$resultaat['antwd'] = $show['d'];
// Voeg het JUISTE resultaat toe aan de array
array_push($VraagAntwoordArray, $resultaat);
// Zet de JUISTE resultaat array in een session
$_SESSION['VraagAntwoord'] = $VraagAntwoordArray;
// Klaar stomen van het volgende vraag nummer
$count ++;
}
// De knop om je antwoorden in de sturen
echo "<input type='submit' onclick='javascript:CheckVelden();' value='Stuur je antwoorden in' name='stuurIn'>";
// Eind tag van het form
echo "</form>";
}
?>
JS:
/**
* Controleert of de verplichte velden zijn ingevuld
*
* @return true als al de velden zijn ingevuld anders false
*/
function CheckVelden()
{
// Als het veld gebruikersnaam leeg is dan
if((document.quiz.gebruikersnaam.value == ".......................................") || (document.quiz.gebruikersnaam.value == ""))
{
alert("Je moet eerst je naam invullen voordat je de antwoorden in kan sturen.\n");
return false;
}
return true;
}
/**
* Status blak text
*
* defaultstatus De text die in de status balk wordt geprint
*/
window.defaultStatus = "Hudito Jongens A1";
Database shizzle :
CREATE TABLE `vragen` (
`id` int(255) NOT NULL auto_increment,
`vraag` varchar(255) NOT NULL default '',
`antwoord` varchar(255) NOT NULL default '',
UNIQUE KEY `id` (`id`)
)
CREATE TABLE `antwoorden` (
`id` smallint(11) NOT NULL auto_increment,
`a` varchar(255) NOT NULL default '',
`b` varchar(255) NOT NULL default '',
`c` varchar(255) NOT NULL default '',
`d` varchar(255) NOT NULL default '',
UNIQUE KEY `id` (`id`)
)
Zo kan het ook :D.