Ok, titel beetje vaag misschien maar ik zal het proberen uit te leggen:
Ik wou een pollsysteempje maken, die meerdere polls ondersteunt. Zo gezegd zo gedaan, alles ging goed.. Toen kwam ik erachter dat op de manier waarop het scriptje toen was, dat het de database wel heel erg veel zou vragen naarmate er meer polls zouden komen, want iedere entry (dus vote voor dit of dat) zou een nieuwe row aanmaken. Onzin dus.
Na even nadenken kwam ik op het idee om het met een 'UPDATE' te doen...
Script waar ik uiteindelijk op uitkwam:
Als ik nu een poll heb toegevoegd, en probeer te voten gaat er iets mis... Hij doet namelijk niks :\ Ook geeft hij geen errors ofzo...
Ik neem aan dat het probleem zich hier bevind:
Het vervelende is dat ik na 2 uur ploeteren nog niks ben opgeschoten, en ik kan het probleem echt niet vinden... Het zal wel een hele stomme fout zijn, in dat geval, vergeef me, ik ben maar een n00b...
Btw, ik heb de code wat gestript van lay-out etc. maar niks belangrijks weggelaten.
Nogmaals het probleem: hij wil niet updaten. De standaardwaarde van $choice1 ... $choice5 is 0, in de tabel pollanswers... Dus dan zou hij toch 0+1 moeten doen? In ieder geval, dat doet hij dus niet
En waarom, weet ik niet... Ik heb voor de zekerheid maar ff de mySQL 'tutorial' van www.w3school.org gebruikt om te checken of het wel klopte wat ik heb gedaan, en volgens mij klopt dat stuk dus wel.
Het kan ook zijn dat daar de fout in zit, maar dan zie ik hem iig over het hoofd.
Ik doe nu ondertussen ook al een half uur over deze post omdat ik een aantal bugs heb gevonden en dus ook verwijdert, maar het probleem is nogsteeds hetzelfde...
Ik moet nu naar m'n vrienden toe, al een half uur te laat...
Ik wou een pollsysteempje maken, die meerdere polls ondersteunt. Zo gezegd zo gedaan, alles ging goed.. Toen kwam ik erachter dat op de manier waarop het scriptje toen was, dat het de database wel heel erg veel zou vragen naarmate er meer polls zouden komen, want iedere entry (dus vote voor dit of dat) zou een nieuwe row aanmaken. Onzin dus.
Na even nadenken kwam ik op het idee om het met een 'UPDATE' te doen...
Script waar ik uiteindelijk op uitkwam:
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
| <?php include "config.php"; mysql_connect("$dbhost","$dbuser","$dbpassword"); mysql_select_db("$dbname"); $select= "SELECT * FROM poll ORDER BY id DESC LIMIT 1"; $result = mysql_query($select); $row = mysql_fetch_array($result); $id = $row['id']; $question = $row['question']; $choice1 = $row['choice1']; $choice2 = $row['choice2']; $choice3 = $row['choice3']; $choice4 = $row['choice4']; $choice5 = $row['choice5']; ?> <FORM METHOD="POST" ACTION="<?php echo"$PHP_SELF"; ?>"> <?php echo "$question"; ?> <INPUT TYPE="radio" NAME="poll" VALUE="choice1"><?php echo "$choice1"; ?><br> <INPUT TYPE="radio" NAME="poll" VALUE="choice2"><?php echo "$choice2"; ?><br> <INPUT TYPE="radio" NAME="poll" VALUE="choice3"><?php echo "$choice3"; ?><br> <INPUT TYPE="radio" NAME="poll" VALUE="choice4"><?php echo "$choice4"; ?><br> <INPUT TYPE="radio" NAME="poll" VALUE="choice5"><?php echo "$choice5"; ?><br> <INPUT TYPE="HIDDEN" NAME="id" VALUE="<?php echo "$id"; ?>"> <input type="HIDDEN" name="hidden" VALUE="1"> <INPUT TYPE="Submit" NAME="vote" VALUE="Vote"> <INPUT TYPE="Submit" NAME="result" VALUE="See Result"> </FORM> <?php if($vote) { $select= "SELECT * FROM pollanswers WHERE id='$id' ORDER BY id DESC LIMIT 1"; $result = mysql_query($select); $row = mysql_fetch_array($result); $answers = $row['$poll']; $answer = $answers+1; $update = "UPDATE pollanswers SET $poll='$answer' WHERE id='$id'"; mysql_query($update) or die("MySQL is taking a short nap, please try again in a minute."); } $row1 = mysql_query("SELECT choice1 FROM pollanswers"); $row2 = mysql_query("SELECT choice2 FROM pollanswers"); $row3 = mysql_query("SELECT choice3 FROM pollanswers"); $row4 = mysql_query("SELECT choice4 FROM pollanswers"); $row5 = mysql_query("SELECT choice5 FROM pollanswers"); $totaal1 = mysql_fetch_array($row1); $totaal2 = mysql_fetch_array($row2); $totaal3 = mysql_fetch_array($row3); $totaal4 = mysql_fetch_array($row4); $totaal5 = mysql_fetch_array($row5); $totaal = $totaal1+$totaal2+$totaal3+$totaal4+$totaal5; $procent1 = $totaal1 / $totaal * 100; $procent2 = $totaal2 / $totaal * 100; $procent3 = $totaal3 / $totaal * 100; $procent4 = $totaal4 / $totaal * 100; $procent5 = $totaal5 / $totaal * 100; $procent1 = round($procent1); $procent2 = round($procent2); $procent3 = round($procent3); $procent4 = round($procent4); $procent5 = round($procent5); echo" $totaal Votes<br> $choice1 $procent1 %<br> $choice2 $procent2 %<br> $choice3 $procent3 %<br> $choice4 $procent4 %<br> $choice5 $procent5 %<br> "; } ?> |
Als ik nu een poll heb toegevoegd, en probeer te voten gaat er iets mis... Hij doet namelijk niks :\ Ook geeft hij geen errors ofzo...
Ik neem aan dat het probleem zich hier bevind:
PHP:
1
2
| $update = "UPDATE pollanswers SET $poll='$answer' WHERE id='$id'"; mysql_query($update) or die("MySQL is taking a short nap, please try again in a minute."); |
Het vervelende is dat ik na 2 uur ploeteren nog niks ben opgeschoten, en ik kan het probleem echt niet vinden... Het zal wel een hele stomme fout zijn, in dat geval, vergeef me, ik ben maar een n00b...
Btw, ik heb de code wat gestript van lay-out etc. maar niks belangrijks weggelaten.
Nogmaals het probleem: hij wil niet updaten. De standaardwaarde van $choice1 ... $choice5 is 0, in de tabel pollanswers... Dus dan zou hij toch 0+1 moeten doen? In ieder geval, dat doet hij dus niet
Het kan ook zijn dat daar de fout in zit, maar dan zie ik hem iig over het hoofd.
Ik doe nu ondertussen ook al een half uur over deze post omdat ik een aantal bugs heb gevonden en dus ook verwijdert, maar het probleem is nogsteeds hetzelfde...
Ik moet nu naar m'n vrienden toe, al een half uur te laat...