rendered paste body<?php class poll { var $poll_id; var $answer_id; function display_poll() { $poll_id = $this->poll_id; $query = "SELECT * FROM polls WHERE id = " . $poll_id; $result = mysql_query($query) or die(mysql_error()); if(!mysql_num_rows($result)) die("Invalid poll id"); $row = mysql_fetch_assoc($result); $poll_title = $row["question"]; $poll_answers = array($row["answer1"] , $row["answer2"] , $row["answer3"] , $row["answer4"] , $row["answer5"]); $poll_answers_num = 0; for($i = 0; $i < 5; $i++) { if(!empty($poll_answers[$i])) $poll_answers_num++; } if(!$this->user_voted($_SERVER["REMOTE_ADDR"])) // if the user hasn't voted { echo "<form action=\"" . $_SERVER["PHP_SELF"] . "\" method=\"post\">"; echo "<b>" . $poll_title . "</b><br \>"; for($i = 0; $i < $poll_answers_num; $i++) { echo "<input type=\"radio\" name=\"answerid\" value=\"" . ($i + 1) . "\"> " . $poll_answers[$i] . "<br \>"; } echo "<input type=\"hidden\" name=\"pollid\" value=\"" . $poll_id . "\">"; echo "<input type=\"submit\" name=\"vote\" value=\"Vote\">"; echo "</form>"; } else { echo "<b>" . $poll_title . "</b><br \>"; echo "<ul>"; for($i = 0; $i < $poll_answers_num; $i++) { $answers_sum = $this->answers_sum($i + 1); $answers_total = $this->answers_total(); $answer_percent = $this->answer_percent($answers_sum , $answers_total); echo "<li>" . $poll_answers[$i] . " - " . $answer_percent . "%</li>"; } echo "</ul>"; } } function user_voted($user_ip) { $query = "SELECT * FROM poll_answers WHERE ip = '" . $user_ip . "'"; $result = mysql_query($query) or die(mysql_error()); if(mysql_num_rows($result)) return 1; return 0; } function vote() { $poll_id = $this->poll_id; $answer_id = $this->answer_id; $ip = $_SERVER["REMOTE_ADDR"]; if($this->user_voted($ip)) return 2; $result = mysql_query("INSERT INTO `poll_answers` (pollid, answerid, ip) VALUES ('$poll_id', '$answer_id', '$ip')") or die(mysql_error()); if($result != false) return 1; return 0; } function answers_sum($answerid) { $query = "SELECT * FROM poll_answers WHERE pollid = " . $this->poll_id . " AND answerid = " . $answerid; $result = mysql_query($query) or die(mysql_error()); $answers_sum = 0; while($row = mysql_fetch_assoc($result)) $answers_sum += $row["answerid"]; return $answers_sum; } function answers_total() { $query = "SELECT * FROM poll_answers WHERE pollid = " . $this->poll_id; $result = mysql_query($query) or die(mysql_error()); return mysql_num_rows($result); } function answer_percent($answers_sum , $answers_total) { return ($answers_sum / $answers_total) * 100; } }?>