login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Poll/Stem systemen > Rating

Rating

Auteur: Slipie - 14 september 2004 - 23:16 - Gekeurd door: Dennisvb - Hits: 15320 - Aantal punten: 3.61 (14 stemmen)




Er word er een cookie gezet zodat de gebruiker niet vaker kan stemmen dan 1x.
Let op dit is een add-on script! dus je moet een leden systeem hebben waar je het aan toevoegd ofzo.
Naja verder wel genoeg uitleg in het script zelf toch?

mysql:

CREATE TABLE `rating` (
`id` int(11) NOT NULL auto_increment,
`aantal` int(11) NOT NULL,
`cijfer` int(11) NOT NULL,
PRIMARY KEY (`id`)
) TYPE=MyISAM;

Code:
Rating.php
  1. <?
  2. //mysql database gevens, deze veranderen.
  3. mysql_connect("host","user","password");
  4. mysql_select_db("database");
  5.  
  6. //gegevens uit de database ophalen
  7. $result = mysql_query("SELECT * FROM rating WHERE id=" . $_GET['id']);
  8. $row = mysql_fetch_array($result);
  9. $cookie = "gestemd" . $_GET['id'];
  10. $cookieSET = $_COOKIE[$cookie];
  11.  
  12. //als er gestemd is
  13. if (isset($_POST['cijfer'])) {
  14. //het aantal stemmen met 1 verhogen en het cijfer dat gegeven word optellen bij de rest
  15. mysql_query("UPDATE rating SET aantal=aantal+1, cijfer=cijfer+" . $_POST['cijfer'] . " WHERE id=" . $_GET['id']) or die(mysql_error());
  16. //cookie voor een maand zetten
  17. Setcookie($cookie, "gestemd".$_POST['cijfer'], Time()+3600*24*31);
  18. header("location:rating.php?id=" . $_GET['id'] . "");
  19. }
  20. ?>
  21. <html>
  22. <head><title>Rating</title></head>
  23. <body>
  24. Rate: <? echo $row['naam']; ?><br>
  25. <?
  26. if ($row['aantal'] >= 1) {
  27. echo "Er&nbsp;";
  28. if ($row['aantal'] < 2){
  29. echo "heeft <b>" . $row['aantal'] . "</b> persoon gestemd";
  30. } elseif ($row['aantal'] >= 2) {
  31. echo "hebben <b>" . $row['aantal'] . "</b> personen gestemd";
  32. }
  33. }
  34. ?>
  35. <table>
  36. <?
  37. //kijken of de cookie al gezet is of niet
  38. if(!isset($cookieSET)) {
  39. ?>
  40. <tr>
  41. <td>
  42. <form method="post" action="">
  43. <select name="cijfer" onchange="javascript:this.form.submit();">
  44. <option value="">Cijfer:</option>
  45. <option value="1">1</option>
  46. <option value="2">2</option>
  47. <option value="3">3</option>
  48. <option value="4">4</option>
  49. <option value="5">5</option>
  50. <option value="6">6</option>
  51. <option value="7">7</option>
  52. <option value="8">8</option>
  53. <option value="9">9</option>
  54. <option value="10">10</option>
  55. </select>
  56. </form>
  57. </td>
  58. </tr>
  59. <?
  60. }
  61. ?>
  62. <tr>
  63. <td>
  64. <?
  65. //is er nog geen cijfer gegeven
  66. if ($row['aantal'] < 1) {
  67. echo "Er is nog geen cijfer gegeven";
  68. } else {
  69. //is er wel al een cijfer geven
  70. // het gemiddelde berekennen door het totaal te delen door het aantal
  71. $total = $row['cijfer'] / $row['aantal'];
  72. $total = round($total,1);
  73. echo "Aantal sterren:";
  74. //uitrekennen hoeveel sterren het artikel, script of wat dan ook krijgt
  75. if ($total <= 2.5) {
  76. echo "1 ster";
  77. } elseif ($total <= 3.5) {
  78. echo "1,5 ster";
  79. } elseif ($total <= 4.5) {
  80. echo "2 sterren";
  81. } elseif ($total <= 5.5) {
  82. echo "2,5 sterren";
  83. } elseif ($total <= 6.5) {
  84. echo "3 sterren";
  85. } elseif ($total <= 7.5) {
  86. echo "3,5 sterren";
  87. } elseif ($total <= 8.5) {
  88. echo "4 sterren";
  89. } elseif ($total <= 9.5) {
  90. echo "4,5 sterren";
  91. } elseif ($total <= 10.5) {
  92. echo "5 sterren";
  93. }
  94. }
  95. ?>
  96. </td>
  97. </tr>
  98. </table>
  99. </body>
  100. </html>
Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (11)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.03s