<form method="POST" action="upis_ankete_u_bazu.php">
Ovde stavi pitanje za anketu
<input name="anketa" type="radio" value="odgovor_1"><li style="display:inline;">tekst odgovora 1</li>
<input name="anketa" type="radio" value="odgovor_2"><li style="display:inline;">tekst odgovora 2</li>
...
<input name="anketa" type="radio" value="odgovor_n"><li style="display:inline;">tekst odgovora n</li>
<input type="submit" value="Glasaj" onclick="this.blur();" />
</form>
Nakon sto posetilac glasa klikom na dugme "Glasaj" pokrece se upis_ankete_u_bazu.php
u toj PHP rutini moras uporediti vrednosti POST promenljive anketa sa odgovorima zapisanim u bazi
if( !empty($_POST[anketa]) ) {
mysql_query("SET CHARACTER SET 'utf8'");
$upit = "SELECT * FROM ankete WHERE start_date <= CURDATE() ORDER BY start_date DESC LIMIT 1;";
$iz_baze = mysql_query($upit);
$anketa_u_bazi = mysql_fetch_assoc($iz_baze);
while( $anketa_u_bazi['tekst_odgovor'.++$i] != $_POST[anketa] ){}
$broj_bodova = $anketa_u_bazi['bodovi_odgovor'.$i] + 1;
$upit = "UPDATE ankete SET bodovi_odgovor$i='$broj_bodova' WHERE naziv='$anketa_u_bazi[naziv]';";
$u_bazu = mysql_query($upit);
header('Location:
www.tvojsajt.com');
}else{
// ovde mozes postaviti sta se radi ako posetilac nije odabrao odgovor
}
umesto
www.tvojsajt.com stavis adresu strane na kojoj je bila anketa.
da bi se rezultati ankete belezili kreiras tabelu u bazi koja ce cuvati broj glasova za svaki odgovor:
CREATE TABLE `ankete` (
`naziv` text character set utf8,
`start_date` date default NULL,
`pitanje` text character set utf8,
`tekst_odgovor1` text character set utf8,
`bodovi_odgovor1` int(11) default NULL,
`tekst_odgovor2` text character set utf8,
`bodovi_odgovor2` int(11) default NULL,
`tekst_odgovor3` text character set utf8,
`bodovi_odgovor3` int(11) default NULL,
`tekst_odgovor4` text character set utf8,
`bodovi_odgovor4` int(11) default NULL,
`tekst_odgovor5` text character set utf8,
`bodovi_odgovor5` int(11) default NULL,
`tekst_odgovor6` text character set utf8,
`bodovi_odgovor6` int(11) default NULL,
`tekst_odgovor7` text character set utf8,
`bodovi_odgovor7` int(11) default NULL,
`tekst_odgovor8` text character set utf8,
`bodovi_odgovor8` int(11) default NULL,
`tekst_odgovor9` text character set utf8,
`bodovi_odgovor9` int(11) default NULL,
`tekst_odgovor10` text character set utf8,
`bodovi_odgovor10` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Dodatno, kolona start_date u bazi omogucava da uneses sledecu anketu sa novim datumom u buducnosti i novim odgovorima. Tako mozes da izdefinises ankete unapred a PHP prikazuje na Web strani prvu ciji je datum stariji ili jednak danasnjem (SELECT * FROM ankete WHERE start_date <= CURDATE() ORDER BY start_date DESC LIMIT 1)
I da ne zaboravim najvaznije - da bi se rezultati belezili u bazu tekst pitanja u bazi (tekst_odgovor1 ... tekst_odgovor10) i moraju se poklapati sa value="odgovor_1" u input type="radio". Ovde mozes naici na problem sa kodnim rasporedom, ali to resava mysql_query("SET CHARACTER SET 'utf8'"); Ako ti je recimo ceo sajt u 1250 onda izmeni to na svim mestima gde vidis utf8
Ova anketa ima nedostatak sto svako na nju moze glasati neogranicen broj puta, ali ne mogu ti dati bas sve. To uradi sam tako sto setujes posetiocu koji je glasao cookie.
Jednostavno, zar ne?