Poll systeem
Ik heb een Poll systeem maar als je bijvoorbeeld een stem uitbrengt dan zijn al de keuzes op 100%
Wie kan me helpen?
Voorbeeld
Code
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
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
<?php
$pollSql = $core->mysql->query("SELECT
*
FROM
poll");
if($core->mysql->num_rows($pollSql))
{
$pollFetch = $core->mysql->fetch($pollSql);
$gestemdSql = $core->mysql->query("SELECT
poll_id,
lid_id,
stem_antwoord
FROM
poll_stemmen
WHERE
poll_id = '".$core->mysql->escape($pollFetch['id']) . "'
AND
lid_id = '".$core->leden->ledeninfo['eigen']['id']."'");
if($core->leden->ingelogd == TRUE)
{
if(isset($_POST['submit']))
{
if((isset($_POST['antwoord'])) && (ctype_digit($_POST['antwoord'])))
{
if(!empty($pollFetch['antwoord' . $core->entities($_POST['antwoord'])]))
{
if($core->mysql->num_rows($gestemdSql) == 0)
{
$core->mysql->query("INSERT INTO
poll_stemmen
(
poll_id,
lid_id,
stem_antwoord
) VALUES (
'".$core->mysql->escape($pollFetch['id']) . "',
'".$core->leden->ledeninfo['eigen']['id']."',
'".$core->mysql->escape($_POST['antwoord']) . "'
)");
$gestemdSql = $core->mysql->query("SELECT
stem_antwoord
FROM
poll_stemmen
WHERE
poll_id = ".$core->mysql->escape($pollFetch['id'])."
AND
lid_id = ".$core->mysql->escape($core->leden->ledeninfo['eigen']['id']));
}
}
}
}
}
echo '<strong>' . $core->entities($pollFetch['vraag']) . '</strong><br />';
$votes_sql = $core->mysql->query("SELECT
COUNT(1) AS total_votes
FROM
poll_stemmen
WHERE
poll_id = '" . $core->mysql->escape($pollFetch['id']) . "'");
$votes = $core->mysql->fetch($votes_sql);
if($core->mysql->num_rows($gestemdSql))
{
$gestemdFetch = $core->mysql->fetch($gestemdSql);
}
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<form action="" method="post">
<?php
}
echo '<table>';
for($i = 1; $i <= 10; $i++)
{
if(!empty($pollFetch['antwoord' . $i]))
{
$antwoord_votes_sql = $core->mysql->query("SELECT
COUNT(1) AS antwoord_votes
FROM
poll_stemmen`
WHERE
poll_id = '".$core->mysql->escape($pollFetch['id']) . "'
AND
stem_antwoord = '".$core->mysql->escape($i) . "'");
$antwoord_votes = $core->mysql->fetch($antwoord_votes_sql);
if($votes['total_votes'] != 0)
{
$percentage = ((round(($antwoord_votes['antwoord_votes'] / $votes['total_votes']), 4)) * 100);
}
else
{
$percentage = 0;
}
echo '<tr>';
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<td><input type="radio" name="antwoord" value="<?php echo $core->entities($i); ?>" /></td>
<?php
}
echo '<td>';
if($gestemdFetch['stem_antwoord'] == $i)
{
echo '<i>' . $core->entities($pollFetch['antwoord' . $i]) . '</i>';
}
else
{
echo $core->entities($pollFetch['antwoord' . $i]);
}
echo '</td>
<td><div style="background: url(\''.ROOT.'img/poll_bar.png\') no-repeat bottom left; width: ' . $percentage . 'px; height: 15px; float: left; margin: 1px 0 0 0;"></div></div></td><td><i>' . $percentage . '%</i></td></tr>';
}
}
echo '</table>';
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<input type="submit" value="Stem" class="inputVeld" name="submit" />
</form>
<?php
}
echo 'Totaal aantal stemmen: ' . $core->entities($votes['total_votes']);
}
?>
$pollSql = $core->mysql->query("SELECT
*
FROM
poll");
if($core->mysql->num_rows($pollSql))
{
$pollFetch = $core->mysql->fetch($pollSql);
$gestemdSql = $core->mysql->query("SELECT
poll_id,
lid_id,
stem_antwoord
FROM
poll_stemmen
WHERE
poll_id = '".$core->mysql->escape($pollFetch['id']) . "'
AND
lid_id = '".$core->leden->ledeninfo['eigen']['id']."'");
if($core->leden->ingelogd == TRUE)
{
if(isset($_POST['submit']))
{
if((isset($_POST['antwoord'])) && (ctype_digit($_POST['antwoord'])))
{
if(!empty($pollFetch['antwoord' . $core->entities($_POST['antwoord'])]))
{
if($core->mysql->num_rows($gestemdSql) == 0)
{
$core->mysql->query("INSERT INTO
poll_stemmen
(
poll_id,
lid_id,
stem_antwoord
) VALUES (
'".$core->mysql->escape($pollFetch['id']) . "',
'".$core->leden->ledeninfo['eigen']['id']."',
'".$core->mysql->escape($_POST['antwoord']) . "'
)");
$gestemdSql = $core->mysql->query("SELECT
stem_antwoord
FROM
poll_stemmen
WHERE
poll_id = ".$core->mysql->escape($pollFetch['id'])."
AND
lid_id = ".$core->mysql->escape($core->leden->ledeninfo['eigen']['id']));
}
}
}
}
}
echo '<strong>' . $core->entities($pollFetch['vraag']) . '</strong><br />';
$votes_sql = $core->mysql->query("SELECT
COUNT(1) AS total_votes
FROM
poll_stemmen
WHERE
poll_id = '" . $core->mysql->escape($pollFetch['id']) . "'");
$votes = $core->mysql->fetch($votes_sql);
if($core->mysql->num_rows($gestemdSql))
{
$gestemdFetch = $core->mysql->fetch($gestemdSql);
}
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<form action="" method="post">
<?php
}
echo '<table>';
for($i = 1; $i <= 10; $i++)
{
if(!empty($pollFetch['antwoord' . $i]))
{
$antwoord_votes_sql = $core->mysql->query("SELECT
COUNT(1) AS antwoord_votes
FROM
poll_stemmen`
WHERE
poll_id = '".$core->mysql->escape($pollFetch['id']) . "'
AND
stem_antwoord = '".$core->mysql->escape($i) . "'");
$antwoord_votes = $core->mysql->fetch($antwoord_votes_sql);
if($votes['total_votes'] != 0)
{
$percentage = ((round(($antwoord_votes['antwoord_votes'] / $votes['total_votes']), 4)) * 100);
}
else
{
$percentage = 0;
}
echo '<tr>';
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<td><input type="radio" name="antwoord" value="<?php echo $core->entities($i); ?>" /></td>
<?php
}
echo '<td>';
if($gestemdFetch['stem_antwoord'] == $i)
{
echo '<i>' . $core->entities($pollFetch['antwoord' . $i]) . '</i>';
}
else
{
echo $core->entities($pollFetch['antwoord' . $i]);
}
echo '</td>
<td><div style="background: url(\''.ROOT.'img/poll_bar.png\') no-repeat bottom left; width: ' . $percentage . 'px; height: 15px; float: left; margin: 1px 0 0 0;"></div></div></td><td><i>' . $percentage . '%</i></td></tr>';
}
}
echo '</table>';
if($core->mysql->num_rows($gestemdSql) == 0 && $core->leden->ingelogd == TRUE)
{
?>
<input type="submit" value="Stem" class="inputVeld" name="submit" />
</form>
<?php
}
echo 'Totaal aantal stemmen: ' . $core->entities($votes['total_votes']);
}
?>
Pas bij meerdere stemmen ga je verschillen zien.
John D op 06/08/2010 10:09:06:
Maar dat klopt toch, 1 uitgebrachte stem=100% ?
Pas bij meerdere stemmen ga je verschillen zien.
Pas bij meerdere stemmen ga je verschillen zien.
Hea waar heb jij het over?
Als je op een antwoord stemt hoort toch alleen dat antwoord 100% te zijn en niet alle antwoorden?
Precies wat Jeroen zegt ;)
Probably iets als SELECT COUNT(id) as total_votes...
Geeft geen verschil ;)
Het blijft hetzelfde ;)
Want volgens mij heeft $percentage steeds dezelfde waarde. Dus je fout zal daar wel ergens zitten.
- Zet een aantal $variabelen op je scherm
- Kloppen de resultaten van je queries met het gene wat in je database staat.
Gewijzigd op 06/08/2010 12:16:32 door Martijn B
Ik kom er echt niet uit :(
Zoals dit:
if(!empty($pollFetch['antwoord' . $core->entities($_POST['antwoord'])]))
Lijkt mij niet een juist datamodel.
En dan even later dan ga je een query opstellen, die je pas gebruikt nadat je een andere query hebt opgesteld (die COUNT(1) AS total_votes ofzo, vage query iig).
Nergens in dit script wijst erop dat je er een percentage van maakt. Ga det eerst eens verzinnen.