Anketa v PHP & MySQL

Napsal O webu (») 16. 3. 2005 v kategorii PHP/HTML, přečteno: 3723×

V dnešním článku si vytvoříme anketu v PHP za pomoci databáze MySQL.

V dnešní anketě budeme potřebovat soubor config.php, index.php, hlasuj.php a databázové tabulky anketa a anketaip.

Tabulka anketa create table anketa(
id int not null auto_increment primary key,
otazka varchar(150) null,
o1 varchar(100) null,
o2 varchar(100) null,
o3 varchar(100) null,
o4 varchar(100) null,
o5 varchar(100) null,
o6 varchar(100) null,
o7 varchar(100) null,
o8 varchar(100) null,
o9 varchar(100) null,
o10 varchar(100) null,
x1 int default 0,
x2 int default 0,
x3 int default 0,
x4 int default 0,
x5 int default 0,
x6 int default 0,
x7 int default 0,
x8 int default 0,
x9 int default 0,
x10 int default 0,
aktivni int null
);
Tabulka anketaip create table anketaip(
id int not null auto_increment primary key,
ip varchar(15) null,
anketa int null
);
config.php <?php
$server = ,mysql_server;
$user = uziv_jmeno;
$pass = heslo;
$db = databaze;
?>
index.php <?php
session_start();
require ./config.php;
mysql_connect($server, $user, $pass) or die(Nepodařilo se připojit k MySQL serveru!);
mysql_select_db($db) or die(Nepodařilo se připojit k MySQL databázi!);
if($_SESSION[hlasovani] == ok)
{
echo <div align=center style=border-bottom: solid; border-width: 2px; border-color: #000000; font-weight: bold;>Váš hlas byl úspěšně přidán.</div>;
$_SESSION[hlasovani] = false;
}
if($_SESSION[hlasovani] == ne)
{
echo <div align=center style=border-bottom: solid; border-width: 2px; border-color: #000000; font-weight: bold;>V této anketě jste již hlasoval(a).</div>;
$_SESSION[hlasovani] = false;
}

$selectan = select * from anketa where aktivni = 1;
$resultan = mysql_query($selectan);
$van = mysql_fetch_array($resultan);

$celkem = $van[x1] + $van[x2] + $van[x3] + $van[x4] + $van[x5] + $van[x6] + $van[x7] + $van[x8] + $van[x9] + $van[x10];

echo <div align=center style=border-bottom: solid; border-width: 2px; border-color: #000000;> . $van[otazka] . </div>;

for($i = 1; $i < 11; $i++)
{
if($van[o$i] != -)
{
@$procenta = ($van[x$i] * 100) / $celkem;
$zaokrouhleni = round($procenta, 1);
$sirkagrafu = ($zaokrouhleni / 100) * 170;

echo <a href=./hlasuj.php?hlas=x$i&anketa={$van[id]} title={$van[o$i]}>{$van[o$i]}</a><br>;
echo <img src=./grafika/graf$i.gif alt={$van[o$i]} width=$sirkagrafu height=10><br>;
echo {$van[x$i]} hlasů ($zaokrouhleni%)<br>;
}
}
?>
hlasuj.php <?php
session_start();
require ./config.php;
mysql_connect($server, $user, $pass) or die(Nepodařilo se připojit k MySQL serveru!);
mysql_select_db($db) or die(Nepodařilo se připojit k MySQL databázi!);

$ip_proxy = getenv('HTTP_X_FORWARDED_FOR');
if ($ip_proxy != )
{
list($ip) = explode(,, $ip_proxy);
}
else
{
$ip = getenv('REMOTE_ADDR');
if (!intval($ip))
{
$ip=0.0.0.0;
}
}

$hlas = $_GET[hlas];
$anketa = $_GET[anketa];

$selectankip = select * from anketaip;
$resultankip = mysql_query($selectankip);
$vanip = mysql_fetch_array($resultankip);
if($vanip[ip] != $ip)
{
$hlasuj = update anketa set $hlas = $hlas + 1 where id = $anketa;
mysql_query($hlasuj);
$vlozip = insert into anketaip values('', '$ip', '$anketa');
mysql_query($vlozip);
$_SESSION[hlasovani] = ok;
}
elseif($vanip[ip] == $ip && $vanip[anketa] != $anketa)
{
$hlasujip = update anketaip set anketa = $anketa where ip = '$ip';
mysql_query($hlasujip);
$hlasujipx = update anketa set $hlas = $hlas + 1 where anketa = $anketa;
mysql_query($hlasujipx);
$_SESSION[hlasovani] = ok;
}
elseif($vanip[ip] == $ip && $vanip[anketa] == $anketa)
{
$_SESSION[hlasovani] = ne;
}
Header(Location: ./index.php);
?>

Doufám, že se Vám anketa povedla a že si ji dáte na své stránky.


Autor: Jan Zima
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel nula a jedenáct