All pastes #75465 Raw Edit

v3x

public text v1 · immutable
#75465 ·published 2006-06-30 06:38 UTC
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;
		}
	}
?>