PRO poll !!!
Auteur: sayanora - 25 mei 2005 - 20:24 - Gekeurd door: Mokka - Hits: 27502 - Aantal punten: 4.19 (27 stemmen)
Over PRO PoLL :
- Adminfunctie
- Archieffunctie
- Makkelijke installatie middels instal.php
- Radios worden automatisch gemaakt aan de hand van het aantal antwoorden, maw er zijn erg veel antwoorden mogelijk.
- Ip logging zodat er per poll maar 1x gestemd kan worden
- Grafische en procentuele indicator
- Polls makkelijk te herkennen aan weergegeven nummer en bijhorende datum
Installatie:
- Download of kopier de bestanden naar een map (bijv. poll)
- Verander in database.php de gegevens zodat ze op jouw db van kracht zijn.
- Open de browser en ga naar .../poll/instal.php en de SQL tabellen worden weggeschreven Let op! als de tabellen poll en/of votes al bestaan worden deze overschreven!
- Met de browser nog open ga je naar .../poll/admin.php en type je de vraag en de antwoorden gescheiden door een comma.
- Je poll is nu operationeel!
Code:
<?
# Filename : admin.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include("database.php");
# Class new_poll
class new_poll
{
function showAdmin()
{
$admin .= "<form method=\"POST\" ation=\"" . $_SERVER['PHP_SELF'] . "\">";
$admin .= "Vraag :<br />";
$admin .= "<input type=\"text\" name=\"q\" maxlength=\"255\" /><br />";
$admin .= "Antwoorden : (gescheiden door een komma en zonder spaties)<br />";
$admin .= "<input type=\"text\" name=\"a\" /><br />";
$admin .= "<input type=\"submit\" name=\"add\" value=\"Voeg toe!\" />";
$admin .= "</form>";
return $admin;
}
function makeScores($num)
{
for($i=1;$i<=$num;$i++)
{
if($i == $num)
{
$scores .= "0";
}
else
{
$scores .= "0,";
}
}
return $scores;
}
}
# Check if user is Admin
# Hier kun je je eigen log systeem in verwerken
$admin = 1;
if($admin)
{
# Show options
$np = new new_poll;
$db = new database;
# Check if form is submitted
if(!$_POST['add'])
{
# Show admin
echo $np->showAdmin();
}
else
{
# Set some vars
$a = $_POST['a'];
$total = count(explode(",", $a));
$q = htmlentities($_POST['q']);
$a = $_POST['a'];
# calc null values
$null = $np->makeScores($total);
# Insert new poll
$sql1 = "INSERT INTO `poll` SET `poll_stelling` = '" . $q . "', `poll_keuzes` = '" . $a . "', `poll_scores` = '" . $null . "', `poll_datum` = '" . time() . "'";
# Reset votes
$sql2 = "DELETE FROM `votes`";
$res1 = $db->execute($sql1);
$res2 = $db->execute($sql2);
echo "Nieuwe poll toegevoegd!";
}
}
else
{
# User isnt an admin
die("INVALID ACCESLEVEL!");
}
?>
<?
# Filename : admin.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include ( "database.php" ) ;
# Class new_poll
class new_poll
{
function showAdmin( )
{
$admin .= "<form method=\" POST\" ation=\" " . $_SERVER [ 'PHP_SELF' ] . "\" >" ;
$admin .= "Vraag :<br />" ;
$admin .= "<input type=\" text\" name=\" q\" maxlength=\" 255\" /><br />" ;
$admin .= "Antwoorden : (gescheiden door een komma en zonder spaties)<br />" ;
$admin .= "<input type=\" text\" name=\" a\" /><br />" ;
$admin .= "<input type=\" submit\" name=\" add\" value=\" Voeg toe!\" />" ;
$admin .= "</form>" ;
return $admin ;
}
function makeScores( $num )
{
for ( $i = 1 ; $i <= $num ; $i ++ )
{
if ( $i == $num )
{
$scores .= "0" ;
}
else
{
$scores .= "0," ;
}
}
return $scores ;
}
}
# Check if user is Admin
# Hier kun je je eigen log systeem in verwerken
$admin = 1 ;
if ( $admin )
{
# Show options
$np = new new_poll;
$db = new database;
# Check if form is submitted
if ( ! $_POST [ 'add' ] )
{
# Show admin
}
else
{
# Set some vars
$a = $_POST [ 'a' ] ;
$a = $_POST [ 'a' ] ;
# calc null values
$null = $np -> makeScores ( $total ) ;
# Insert new poll
$sql1 = "INSERT INTO `poll` SET `poll_stelling` = '" . $q . "', `poll_keuzes` = '" . $a . "', `poll_scores` = '" . $null . "', `poll_datum` = '" . time ( ) . "'" ; # Reset votes
$sql2 = "DELETE FROM `votes`" ;
$res1 = $db -> execute ( $sql1 ) ;
$res2 = $db -> execute ( $sql2 ) ;
echo "Nieuwe poll toegevoegd!" ; }
}
else
{
# User isnt an admin
die ( "INVALID ACCESLEVEL!" ) ; }
?>
<?
# Filename : archives.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include("database.php");
# Include poll classfile
include("poll.php");
# Archives class
class archive
{
function showAll()
{
# Run database class
$db = new database;
# Get the number of rows
$sql = "SELECT * FROM `poll` ORDER BY `poll_id` DESC";
$aantal = $db->num_rows($sql);
$archives .= "<b>Er zijn " . $aantal . " polls in het archief!</b><br />";
# Get all rowvalues
$data = $db->get_array($sql);
# Set paragraph start
$archives .= "<p>";
# Loop to make the URLs
for($i=0; $i<$aantal; $i++)
$archives .= "<a href=\"" . $_SERVER['PHP_SELF'] . "?ArchID=" . $data[$i]['poll_id'] . "\">" . date("j-n-Y", $data[$i]['poll_datum']) . "</a><br />";
# End paragraph
$archives .= "</p>";
# Link back to mainpage
$archives .= "<p><a href=\"index.php\">Terug</a>";
return $archives;
}
function showSingle($id)
{
# Run poll class
$poll = new poll;
# Get the results
$single = $poll->archResults($id);
return $single;
}
}
# Run archive class
$ac = new archive;
# Check for $_GET data
if($_GET['ArchID'] && is_numeric($_GET['ArchID']))
echo $ac->showSingle($_GET['ArchID']);
else
echo $ac->showAll();
?>
<?
# Filename : archives.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include ( "database.php" ) ;
# Include poll classfile
include ( "poll.php" ) ;
# Archives class
class archive
{
function showAll( )
{
# Run database class
$db = new database;
# Get the number of rows
$sql = "SELECT * FROM `poll` ORDER BY `poll_id` DESC" ;
$aantal = $db -> num_rows ( $sql ) ;
$archives .= "<b>Er zijn " . $aantal . " polls in het archief!</b><br />" ;
# Get all rowvalues
$data = $db -> get_array ( $sql ) ;
# Set paragraph start
$archives .= "<p>" ;
# Loop to make the URLs
for ( $i = 0 ; $i < $aantal ; $i ++ )
$archives .= "<a href=\" " . $_SERVER [ 'PHP_SELF' ] . "?ArchID=" . $data [ $i ] [ 'poll_id' ] . "\" >" . date ( "j-n-Y" , $data [ $i ] [ 'poll_datum' ] ) . "</a><br />" ;
# End paragraph
$archives .= "</p>" ;
# Link back to mainpage
$archives .= "<p><a href=\" index.php\" >Terug</a>" ;
return $archives ;
}
function showSingle( $id )
{
# Run poll class
$poll = new poll;
# Get the results
$single = $poll -> archResults ( $id ) ;
return $single ;
}
}
# Run archive class
$ac = new archive;
# Check for $_GET data
if ( $_GET [ 'ArchID' ] && is_numeric ( $_GET [ 'ArchID' ] ) ) echo $ac -> showSingle ( $_GET [ 'ArchID' ] ) ; else
?>
<?
# Filename : database.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
class database
{
# Database vars
var $user = "User";
var $pass = "Pass";
var $host = "localhost";
var $name = "DBname";
# Functie die mysql_num_rows teruggeeft
function num_rows($sql)
{
$this->connect();
$res = mysql_query($sql);
$aantal = mysql_num_rows($res);
mysql_close();
return $aantal;
}
# Functie de mysql_fetch_array teruggeeft
function get_array($sql)
{
$this->connect();
$res = mysql_query($sql);
while($data = mysql_fetch_array($res))
$row[] = $data;
mysql_close();
return $row;
}
# Zelfde als hierboven maar dan 1 row
function get_single($sql)
{
$this->connect();
$res = mysql_query($sql);
$data = mysql_fetch_array($res);
mysql_close();
return $data;
}
# Functie die een normale query runt
function execute($sql)
{
$this->connect();
$res = mysql_query($sql);
mysql_close();
return $res;
}
# Functie die de database connectie maakt
function connect()
{
return mysql_select_db($this->name, mysql_connect($this->host, $this->user, $this->pass));
}
}
?>
<?
# Filename : database.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
class database
{
# Database vars
var $user = "User" ;
var $pass = "Pass" ;
var $host = "localhost" ;
var $name = "DBname" ;
# Functie die mysql_num_rows teruggeeft
function num_rows( $sql )
{
$this -> connect ( ) ;
return $aantal ;
}
# Functie de mysql_fetch_array teruggeeft
function get_array( $sql )
{
$this -> connect ( ) ;
$row [ ] = $data ;
return $row ;
}
# Zelfde als hierboven maar dan 1 row
function get_single( $sql )
{
$this -> connect ( ) ;
return $data ;
}
# Functie die een normale query runt
function execute( $sql )
{
$this -> connect ( ) ;
return $res ;
}
# Functie die de database connectie maakt
function connect( )
{
}
}
?>
<?
# Filename : index.php
# Author : Sander geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include("database.php");
# Include poll classfile
include("poll.php");
# Run database class
$db = new database;
# Set query to see if voted already
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT * FROM `votes` WHERE `vote_ip` = '" . $ip . "'";
# Run poll class
$poll = new poll;
# If a match is found show results only
if($db->num_rows($sql) == 1)
{
# Show results
echo $poll->showResults();
}
else
{
# Check if form submitted
if(!$_POST['vote'])
{
# Show form
echo $poll->showOptions();
}
else
{
# Add data to database
# Check for a value
if(!$_POST['poll'])
{
# No option selected
# Show poll again
echo $poll->showOptions();
}
else
{
# A radio is checked
# Update votes
$poll->updateVotes($_POST['poll']);
# Show results
echo $poll->showResults();
}
}
}
?>
<?
# Filename : index.php
# Author : Sander geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include ( "database.php" ) ;
# Include poll classfile
include ( "poll.php" ) ;
# Run database class
$db = new database;
# Set query to see if voted already
$ip = $_SERVER [ 'REMOTE_ADDR' ] ;
$sql = "SELECT * FROM `votes` WHERE `vote_ip` = '" . $ip . "'" ;
# Run poll class
$poll = new poll;
# If a match is found show results only
if ( $db -> num_rows ( $sql ) == 1 )
{
# Show results
echo $poll -> showResults ( ) ; }
else
{
# Check if form submitted
if ( ! $_POST [ 'vote' ] )
{
# Show form
echo $poll -> showOptions ( ) ; }
else
{
# Add data to database
# Check for a value
if ( ! $_POST [ 'poll' ] )
{
# No option selected
# Show poll again
echo $poll -> showOptions ( ) ; }
else
{
# A radio is checked
# Update votes
$poll -> updateVotes ( $_POST [ 'poll' ] ) ;
# Show results
echo $poll -> showResults ( ) ; }
}
}
?>
<?
# Filename : install.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include("database.php");
# Instal class
class install
{
# Instal function
function insPoll()
{
$sql1 .= "DROP TABLE IF EXISTS `poll`;";
$sql2 .= "CREATE TABLE `poll` (";
$sql2 .= "`poll_id` int(11) primary key auto_increment,";
$sql2 .= "`poll_stelling` varchar(255) not null default '',";
$sql2 .= "`poll_keuzes` longtext not null default '',";
$sql2 .= "`poll_scores` longtext not null default '',";
$sql2 .= "`poll_datum` int(20) not null default '0'";
$sql2 .= ") TYPE=MyISAM;";
$sql3 .= "DROP TABLE IF EXISTS `votes`;";
$sql4 .= "CREATE TABLE `votes` (";
$sql4 .= "`vote_id` int(11) primary key auto_increment,";
$sql4 .= "`vote_ip` varchar(16) not null default '',";
$sql4 .= "`vote_datum` int(20) not null default '0'";
$sql4 .= ") TYPE=MyISAM;";
# Run db class
$db = new database;
# Execute
$res1 = $db->execute($sql1);
$res2 = $db->execute($sql2);
$res3 = $db->execute($sql3);
$res4 = $db->execute($sql4);
if($res2 && $res4)
{
$install .= "<b>Succesvol geinstalleerd!</b><br />";
$install .= "<a href=\"admin.php\">Klik hier om een vraag in te stellen!</a>";
}
else
{
$install .= "<b>Er is iets fout gegegaan probeer het opnieuw!</b><br />";
$install .= $this->insMenu();
$install .= "<p><b>Is dit al de zoveelste keer dat het mislukt?</b><br />";
$install .= "Voer dan handmatig deze code in in je db:<br />";
$install .= $sql2 . $sql4;
}
return $install;
}
# Show menu
function insMenu()
{
$menu .= "<p><b>SMART PoLL 0.7 INSTALLER</b><br />";
$menu .= "<u>LeT oP!</u> zodra je op <i>install</i> klikt zullen de tabellen genaamd<br />";
$menu .= "<i>'poll'</i> en <i>'votes'</i>, mits ze al bestaan, overschreven worden!<br />";
$menu .= "<a href=\"" . $_SERVER['PHP_SELF'] . "?ins=1\">INSTALL SMART PoLL 0.7 NOW!</a></p>";
return $menu;
}
}
# Run install class
$ins = new install;
# Check for $_GET data
if($_GET['ins'] && is_numeric($_GET['ins']))
echo $ins->insPoll();
else
echo $ins->insMenu();
?>
<?
# Filename : install.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
# Include database classfile
include ( "database.php" ) ;
# Instal class
class install
{
# Instal function
function insPoll( )
{
$sql1 .= "DROP TABLE IF EXISTS `poll`;" ;
$sql2 .= "CREATE TABLE `poll` (" ;
$sql2 .= "`poll_id` int(11) primary key auto_increment," ;
$sql2 .= "`poll_stelling` varchar(255) not null default ''," ;
$sql2 .= "`poll_keuzes` longtext not null default ''," ;
$sql2 .= "`poll_scores` longtext not null default ''," ;
$sql2 .= "`poll_datum` int(20) not null default '0'" ;
$sql2 .= ") TYPE=MyISAM;" ;
$sql3 .= "DROP TABLE IF EXISTS `votes`;" ;
$sql4 .= "CREATE TABLE `votes` (" ;
$sql4 .= "`vote_id` int(11) primary key auto_increment," ;
$sql4 .= "`vote_ip` varchar(16) not null default ''," ;
$sql4 .= "`vote_datum` int(20) not null default '0'" ;
$sql4 .= ") TYPE=MyISAM;" ;
# Run db class
$db = new database;
# Execute
$res1 = $db -> execute ( $sql1 ) ;
$res2 = $db -> execute ( $sql2 ) ;
$res3 = $db -> execute ( $sql3 ) ;
$res4 = $db -> execute ( $sql4 ) ;
if ( $res2 && $res4 )
{
$install .= "<b>Succesvol geinstalleerd!</b><br />" ;
$install .= "<a href=\" admin.php\" >Klik hier om een vraag in te stellen!</a>" ;
}
else
{
$install .= "<b>Er is iets fout gegegaan probeer het opnieuw!</b><br />" ;
$install .= $this -> insMenu ( ) ;
$install .= "<p><b>Is dit al de zoveelste keer dat het mislukt?</b><br />" ;
$install .= "Voer dan handmatig deze code in in je db:<br />" ;
$install .= $sql2 . $sql4 ;
}
return $install ;
}
# Show menu
function insMenu( )
{
$menu .= "<p><b>SMART PoLL 0.7 INSTALLER</b><br />" ;
$menu .= "<u>LeT oP!</u> zodra je op <i>install</i> klikt zullen de tabellen genaamd<br />" ;
$menu .= "<i>'poll'</i> en <i>'votes'</i>, mits ze al bestaan, overschreven worden!<br />" ;
$menu .= "<a href=\" " . $_SERVER [ 'PHP_SELF' ] . "?ins=1\" >INSTALL SMART PoLL 0.7 NOW!</a></p>" ;
return $menu ;
}
}
# Run install class
$ins = new install;
# Check for $_GET data
else
?>
<?
# Filename : poll.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
class poll
{
# Show options function
function showOptions()
{
# Get newest poll
$data = $this->getPoll();
# Split options
$options = explode(",", $data['poll_keuzes']);
# Count options for loop
$aant = count($options)-1;
$poll .= "<b>" . $data['poll_stelling'] . "</b><br />";
$poll .= "<form method=\"POST\" action=\"" . $_SERVER['PHP_SELF'] . "\">";
# Loop and make input radios
for($i = 0; $i <= $aant; $i++)
{
$j = $i+1;
$poll .= "<input type=\"radio\" value=\"" . $j . "\" name=\"poll\" />" . $options[$i] . "<br />";
}
# End form
$poll .= "<input type=\"submit\" name=\"vote\" value=\"Stem!\" />";
$poll .= "</form>";
# Show pollid no. and poll date
$poll .= "<p>PollID: " . $data['poll_id'] . " - PollDatum: " . date("j-n-Y", $data['poll_datum']);
# Show link to archives
$poll .= "<p><a href=\"archives.php\">Bekijk archief!</a>";
return $poll;
}
function updateVotes($vote)
{
# Get newest poll
$data = $this->getPoll();
# Split the vote scores
$stemmen = explode(",", $data['poll_scores']);
# add one to the selected option
$vote--;
(int) $stemmen[$vote]++;
# Remake the data
$stem = implode(",", $stemmen);
# Add to database
$sql1 = "UPDATE `poll` SET `poll_scores` = '" . $stem . "' WHERE `poll_id` = '" . $data['poll_id'] . "'";
$ip = $_SERVER['REMOTE_ADDR'];
$sql2 = "INSERT INTO `votes` SET `vote_ip` = '" . $ip . "', `vote_datum` = '" . time() . "'";
# Run db class
$db = new database;
$res1 = $db->execute($sql1);
$res2 = $db->execute($sql2);
}
function getPoll()
{
# Select the newest poll
$sql = "SELECT * FROM `poll` ORDER BY `poll_id` DESC LIMIT 1";
# Run db class
$db = new database;
# Get array
$data = $db->get_single($sql);
return $data;
}
function showResults()
{
# Get data
$data = $this->getPoll();
# Split options and scores
$options = explode(",", $data['poll_keuzes']);
$scores = explode(",", $data['poll_scores']);
$option = count($options)-1;
# Count the votes
$votes = array_sum($scores);
# Show total votes
$results .= "<b>" . $data['poll_stelling'] . "</b><br />";
$results .= "Totaal aantal stemmen: " . $votes . "<br />";
$results .= "<p>";
# Loop through results
for($i = 0;$i <= $option; $i++)
{
$results .= $options[$i] . "<br />";
$results .= "<img src=\"indicator.png\" width=\"" . $this->imgPXL($votes, $scores[$i]) . "\" height=\"15\" />" . $this->imgPXL($votes, $scores[$i]) . "%";
$results .= "<br />";
}
$results .= "</p>";
# Show pollid no. and poll date
$results .= "<p>PollID: " . $data['poll_id'] . " - PollDatum: " . date("j-n-Y", $data['poll_datum']);
# Show link to archives
$results .= "<p><a href=\"archives.php\">Bekijk archief!</a>";
return $results;
}
function archResults($id)
{
# Get data
$data = $this->archPoll($id);
# Split options and scores
$options = explode(",", $data['poll_keuzes']);
$scores = explode(",", $data['poll_scores']);
$option = count($options)-1;
# Count the votes
$votes = array_sum($scores);
# Show total votes
$results .= "<b>" . $data['poll_stelling'] . "</b><br />";
$results .= "Totaal aantal stemmen: " . $votes . "<br />";
$results .= "<p>";
# Loop through results
for($i = 0;$i <= $option; $i++)
{
$results .= $options[$i] . "<br />";
$results .= "<img src=\"indicator.png\" width=\"" . $this->imgPXL($votes, $scores[$i]) . "\" height=\"15\" />" . $this->imgPXL($votes, $scores[$i]) . "%";
$results .= "<br />";
}
$results .= "</p>";
# Show pollid no. and poll date
$results .= "<p>PollID: " . $data['poll_id'] . " - PollDatum: " . date("j-n-Y", $data['poll_datum']);
# Show link to archives
$results .= "<p><a href=\"archives.php\">Terug!</a>";
return $results;
}
function archPoll($id)
{
# Select the newest poll
$sql = "SELECT * FROM `poll` WHERE `poll_id` = '" . $id . "' ORDER BY `poll_id` DESC LIMIT 1";
# Run db class
$db = new database;
# Get array
$data = $db->get_single($sql);
return $data;
}
# Calculate indicator size
function imgPXL($tot, $opt)
{
$pro = $tot / 100;
$num = $opt / $pro;
return (int) $num;
}
}
?>
<?
# Filename : poll.php
# Author : Sander Geerts
# Projectname : PRO PoLL
# Projectversion : 0.7.1
# Releasedate : 16-08-2004
class poll
{
# Show options function
function showOptions( )
{
# Get newest poll
$data = $this -> getPoll ( ) ;
# Split options
$options = explode ( "," , $data [ 'poll_keuzes' ] ) ; # Count options for loop
$aant = count ( $options ) - 1 ;
$poll .= "<b>" . $data [ 'poll_stelling' ] . "</b><br />" ;
$poll .= "<form method=\" POST\" action=\" " . $_SERVER [ 'PHP_SELF' ] . "\" >" ;
# Loop and make input radios
for ( $i = 0 ; $i <= $aant ; $i ++ )
{
$j = $i + 1 ;
$poll .= "<input type=\" radio\" value=\" " . $j . "\" name=\" poll\" />" . $options [ $i ] . "<br />" ;
}
# End form
$poll .= "<input type=\" submit\" name=\" vote\" value=\" Stem!\" />" ;
$poll .= "</form>" ;
# Show pollid no. and poll date
$poll .= "<p>PollID: " . $data [ 'poll_id' ] . " - PollDatum: " . date ( "j-n-Y" , $data [ 'poll_datum' ] ) ;
# Show link to archives
$poll .= "<p><a href=\" archives.php\" >Bekijk archief!</a>" ;
return $poll ;
}
function updateVotes( $vote )
{
# Get newest poll
$data = $this -> getPoll ( ) ;
# Split the vote scores
$stemmen = explode ( "," , $data [ 'poll_scores' ] ) ;
# add one to the selected option
$vote --;
( int) $stemmen [ $vote ] ++;
# Remake the data
# Add to database
$sql1 = "UPDATE `poll` SET `poll_scores` = '" . $stem . "' WHERE `poll_id` = '" . $data [ 'poll_id' ] . "'" ;
$ip = $_SERVER [ 'REMOTE_ADDR' ] ;
$sql2 = "INSERT INTO `votes` SET `vote_ip` = '" . $ip . "', `vote_datum` = '" . time ( ) . "'" ;
# Run db class
$db = new database;
$res1 = $db -> execute ( $sql1 ) ;
$res2 = $db -> execute ( $sql2 ) ;
}
function getPoll( )
{
# Select the newest poll
$sql = "SELECT * FROM `poll` ORDER BY `poll_id` DESC LIMIT 1" ;
# Run db class
$db = new database;
# Get array
$data = $db -> get_single ( $sql ) ;
return $data ;
}
function showResults( )
{
# Get data
$data = $this -> getPoll ( ) ;
# Split options and scores
$options = explode ( "," , $data [ 'poll_keuzes' ] ) ; $scores = explode ( "," , $data [ 'poll_scores' ] ) ;
$option = count ( $options ) - 1 ;
# Count the votes
# Show total votes
$results .= "<b>" . $data [ 'poll_stelling' ] . "</b><br />" ;
$results .= "Totaal aantal stemmen: " . $votes . "<br />" ;
$results .= "<p>" ;
# Loop through results
for ( $i = 0 ; $i <= $option ; $i ++ )
{
$results .= $options [ $i ] . "<br />" ;
$results .= "<img src=\" indicator.png\" width=\" " . $this -> imgPXL ( $votes , $scores [ $i ] ) . "\" height=\" 15\" />" . $this -> imgPXL ( $votes , $scores [ $i ] ) . "%" ;
$results .= "<br />" ;
}
$results .= "</p>" ;
# Show pollid no. and poll date
$results .= "<p>PollID: " . $data [ 'poll_id' ] . " - PollDatum: " . date ( "j-n-Y" , $data [ 'poll_datum' ] ) ;
# Show link to archives
$results .= "<p><a href=\" archives.php\" >Bekijk archief!</a>" ;
return $results ;
}
function archResults( $id )
{
# Get data
$data = $this -> archPoll ( $id ) ;
# Split options and scores
$options = explode ( "," , $data [ 'poll_keuzes' ] ) ; $scores = explode ( "," , $data [ 'poll_scores' ] ) ;
$option = count ( $options ) - 1 ;
# Count the votes
# Show total votes
$results .= "<b>" . $data [ 'poll_stelling' ] . "</b><br />" ;
$results .= "Totaal aantal stemmen: " . $votes . "<br />" ;
$results .= "<p>" ;
# Loop through results
for ( $i = 0 ; $i <= $option ; $i ++ )
{
$results .= $options [ $i ] . "<br />" ;
$results .= "<img src=\" indicator.png\" width=\" " . $this -> imgPXL ( $votes , $scores [ $i ] ) . "\" height=\" 15\" />" . $this -> imgPXL ( $votes , $scores [ $i ] ) . "%" ;
$results .= "<br />" ;
}
$results .= "</p>" ;
# Show pollid no. and poll date
$results .= "<p>PollID: " . $data [ 'poll_id' ] . " - PollDatum: " . date ( "j-n-Y" , $data [ 'poll_datum' ] ) ;
# Show link to archives
$results .= "<p><a href=\" archives.php\" >Terug!</a>" ;
return $results ;
}
function archPoll( $id )
{
# Select the newest poll
$sql = "SELECT * FROM `poll` WHERE `poll_id` = '" . $id . "' ORDER BY `poll_id` DESC LIMIT 1" ;
# Run db class
$db = new database;
# Get array
$data = $db -> get_single ( $sql ) ;
return $data ;
}
# Calculate indicator size
function imgPXL( $tot , $opt )
{
$pro = $tot / 100 ;
$num = $opt / $pro ;
return ( int) $num ;
}
}
?>
veel geluk ermee Download code (.txt)
Stemmen
Niet ingelogd.