poll met PHPMyAdmin & MySQL
Het enige wat het boek zegt, is dat je twee tabellen aan moet maken: 1 tabel met daarin de vraag/stelling en een tabel met daarin de opties. Dit heb ik gedaan.
Om te zorgen dat er altijd verbinding gemaakt wordt met de database, gebruik ik
include("databaseconnectie.php");
In dat bestand staat het volgende:
Vervolgens heb ik een formulier gemaakt om te stemmen
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
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
<?php
include("databaseconnectie.php");
$result = mysql_query("SELECT vraag FROM poll;");
while($data = mysql_fetch_assoc($result))
{
echo "<h1>" . $data["vraag"] . "</h1>";
}
$result2 = mysql_query("SELECT * FROM optie;");
if($data2 = mysql_fetch_assoc($result2))
{
$optie = $data2["optie"];
?>
<form method="post" action="verwerk.php">
<input type="radio" name="optie" value="1"> N&T <br>
<input type="radio" name="optie" value="2"> N&G <br>
<input type="radio" name="optie" value="3"> C&M <br>
<input type="radio" name="optie" value="4"> E&M <br><br>
<input type="submit" value="stemmen :)">
<?php
}
?>
(Oh ja, als vraag voor de poll heb ik gebruikt 'Welk profiel heb je?' De opties: 1) N&T 2) N&G 3) C&M 4) E&M )
Het formulier gebruikt het volgende script als actie:
<?php
include("databaseconnectie.php");
$optie = $_POST["optie"];
if ($optie == 1)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 1;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 1;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 2)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 2;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 2;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 3)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 3;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 3;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 4)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 4;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 4;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
else
{
echo "ERROR";
}
?>
include("databaseconnectie.php");
$result = mysql_query("SELECT vraag FROM poll;");
while($data = mysql_fetch_assoc($result))
{
echo "<h1>" . $data["vraag"] . "</h1>";
}
$result2 = mysql_query("SELECT * FROM optie;");
if($data2 = mysql_fetch_assoc($result2))
{
$optie = $data2["optie"];
?>
<form method="post" action="verwerk.php">
<input type="radio" name="optie" value="1"> N&T <br>
<input type="radio" name="optie" value="2"> N&G <br>
<input type="radio" name="optie" value="3"> C&M <br>
<input type="radio" name="optie" value="4"> E&M <br><br>
<input type="submit" value="stemmen :)">
<?php
}
?>
(Oh ja, als vraag voor de poll heb ik gebruikt 'Welk profiel heb je?' De opties: 1) N&T 2) N&G 3) C&M 4) E&M )
Het formulier gebruikt het volgende script als actie:
<?php
include("databaseconnectie.php");
$optie = $_POST["optie"];
if ($optie == 1)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 1;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 1;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 2)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 2;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 2;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 3)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 3;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 3;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
if ($optie == 4)
{
$stemmen = mysql_query("SELECT stemmen FROM optie WHERE id = 4;");
$aantalstemmen = mysql_fetch_assoc($stemmen);
$nieuwaantal = $aantalstemmen;
$verwerk = "UPDATE optie SET stemmen = $nieuwaantal WHERE id = 4;";
if(mysql_query($verwerk))
{
echo "Uw stem is toegevoegd!";
}
else
{
echo "ERROR";
}
}
else
{
echo "ERROR";
}
?>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Alvast bedankt!
Alvast bedankt!
Gewijzigd op 18/03/2014 18:51:01 door - Ariën -
En de vraag is?
De vraag is hoe ik verder moet. Want als ik dit script uitvoer, en op een van de opties stem krijg ik 'ERRORERROR'. Dus, wie krijgt dit werkend? ^^
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include("databaseconnectie.php");
$optie = (int) $_POST['optie'];
if ($optie > 0 && $optie < 5) {
$sql = "UPDATE optie SET stemmen = stemmen + 1 WHERE id = " . $optie;
// als je het helemaal netjes wilt doen zet je ook de vraag_id in de WHERE
if (mysql_query($sql) !== FALSE) {
echo 'Uw stem is toegevoegd';
else {
echo 'ERROR op query: ', $sql, '<br>', mysql_error();
}
}
else {
echo 'Slapen doen we \'s nachts';
}
?>
include("databaseconnectie.php");
$optie = (int) $_POST['optie'];
if ($optie > 0 && $optie < 5) {
$sql = "UPDATE optie SET stemmen = stemmen + 1 WHERE id = " . $optie;
// als je het helemaal netjes wilt doen zet je ook de vraag_id in de WHERE
if (mysql_query($sql) !== FALSE) {
echo 'Uw stem is toegevoegd';
else {
echo 'ERROR op query: ', $sql, '<br>', mysql_error();
}
}
else {
echo 'Slapen doen we \'s nachts';
}
?>
Overigens kan je beter meteen over stappen op de mysqli extensie.
Gewijzigd op 18/03/2014 17:22:57 door Ger van Steenderen
En als je niet zomaar overal ERROR neerzet dan weet je wat er fout gaan als er iets fout gaat. :)
http://code.tutsplus.com/articles/creating-a-web-poll-with-php--net-14257
Het is eigenlijk basic stuff wat je zelf moet kunnen maken met een beetje informatica achtergrond. Gewoon logisch nadenken en eerst een schema uittekenen voordat je begint met programmeren.
Haha.. :) Er zijn op internet heel veel voorbeelden en tutorials hoe je een Poll moet maken, zie Het is eigenlijk basic stuff wat je zelf moet kunnen maken met een beetje informatica achtergrond. Gewoon logisch nadenken en eerst een schema uittekenen voordat je begint met programmeren.
thnx, nu doet ie het!! :)
<form method="post" action="verwerk.php">
<input type="radio" name="optie" value="1"> N&T <br>
<input type="radio" name="optie" value="2"> N&G <br>
<input type="radio" name="optie" value="3"> C&M <br>
<input type="radio" name="optie" value="4"> E&M <br><br>
<input type="submit" value="stemmen :)">
Hoe kun je er voor zorgen dat je niet zelf 'N&T' enzo erbij hoeft te zetten, maar dat hij dat ook uit de tabel kan lezen...???
Canisha Steenhuisen op 18/03/2014 16:33:50:
Echt heel handig, want het boek legt niet uit wat je moet doen en mijn docent kan me ook niet verder helpen.
Kan of wil de docent niet helpen??
Een docent lijken mij juist de aangewezen persoon om je te helpen.
Als hetgeen gevraagd wordt niet uitgelegd wordt door docent en/of in het boek, dan ben ik benieuwd wat voor opleiding dat dan is.
Obelix en Idefix op 09/04/2014 10:01:51:
Kan of wil de docent niet helpen??
Een docent lijken mij juist de aangewezen persoon om je te helpen.
Als hetgeen gevraagd wordt niet uitgelegd wordt door docent en/of in het boek, dan ben ik benieuwd wat voor opleiding dat dan is.
Canisha Steenhuisen op 18/03/2014 16:33:50:
Echt heel handig, want het boek legt niet uit wat je moet doen en mijn docent kan me ook niet verder helpen.
Kan of wil de docent niet helpen??
Een docent lijken mij juist de aangewezen persoon om je te helpen.
Als hetgeen gevraagd wordt niet uitgelegd wordt door docent en/of in het boek, dan ben ik benieuwd wat voor opleiding dat dan is.
Helaas niet die van ons.
Die snapt er vaak nog minder van dan wij =S
Daar een extra tabel te maken waarin je antwoorden staan.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Tabel vragen
id (int a_i) -----|
vraag (varchar) |
|
Tabel antwoorden |
id (int a_i) |
vragen_id (int) --|
antwoord (varchar)
stemmen (int)
id (int a_i) -----|
vraag (varchar) |
|
Tabel antwoorden |
id (int a_i) |
vragen_id (int) --|
antwoord (varchar)
stemmen (int)
En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id
Ik hoop niet dat je werkelijk een informatica opleiding doet. Een leraar die zelf niet weet wat voor opdracht die geeft en jou met verouderde functies als mysql_* laat werken is geen succes.
Michael - op 09/04/2014 10:24:58:
>>> Hoe kun je er voor zorgen dat je niet zelf 'N&T' enzo erbij hoeft te zetten, maar dat hij dat ook uit de tabel kan lezen...???
Daar een extra tabel te maken waarin je antwoorden staan.
En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id
Ik hoop niet dat je werkelijk een informatica opleiding doet. Een leraar die zelf niet weet wat voor opdracht die geeft en jou met verouderde functies als mysql_* laat werken is geen succes.
Daar een extra tabel te maken waarin je antwoorden staan.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Tabel vragen
id (int a_i) -----|
vraag (varchar) |
|
Tabel antwoorden |
id (int a_i) |
vragen_id (int) --|
antwoord (varchar)
stemmen (int)
id (int a_i) -----|
vraag (varchar) |
|
Tabel antwoorden |
id (int a_i) |
vragen_id (int) --|
antwoord (varchar)
stemmen (int)
En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id
Ik hoop niet dat je werkelijk een informatica opleiding doet. Een leraar die zelf niet weet wat voor opdracht die geeft en jou met verouderde functies als mysql_* laat werken is geen succes.
Ik heb ook 2 tabellen, maar als ik d.m.v. het id de antwoorden erbij wil zetten, krijg ik alleen maar foutmeldingen (dat de query niet goed is, of dat het id onbekend is).
En het is niet een informatica opleiding, het is gewoon informatica op de middelbare school ;)
Maar het is inderdaad niet handig dat de docent in de meeste gevallen vrijwel niet kan helpen...
Toevoeging op 09/04/2014 20:25:52:
>>>> En met een JOIN zorg je dat de antwoorden bij de goede vraag komen d.m.v. id-vragen_id
JOIN?? Dat zegt me dus helemaal niets :$