Membuat Polling dinamis dengan PHP

Posted on Updated on


Disini saya akan mencoba untuk berbagi ilmu terkait pembuatan polling dinamis dengan PHP. Maksud dari polling dinamis adalah judul polling dan jawabannya dapat diganti-ganti sesuai dengan kebutuhan pada waktu tertentu. Dalam tabel polling terdapat beberapa daftar pertanyaan beserta opsi jawaban dan hasil dari setiap opsi jawaban. Dan yang akan kita tampilkan daftar pertanyaan yang kita set kondisi aktif.
Script yang ada disini merupakan modifikasi dari script module poling dari CMS Lokomedia buatan mas Lukmanul Hakim. Langsung saja buat database baru ‘latihan’ dan tabel ‘polling’, berikut scriptnya:

CREATE DATABASE `latihan`;

CREATE TABLE `polling` (
`id_polling` int(5) NOT NULL auto_increment,
`pertanyaan` varchar(100) NOT NULL,
`jawab_a` varchar(50) NOT NULL,
`jawab_b` varchar(50) NOT NULL,
`jawab_c` varchar(50) NOT NULL,
`jawab_d` varchar(50) NOT NULL,
`jawab_e` varchar(50) NOT NULL,
`hasil_a` int(5) NOT NULL default '0',
`hasil_b` int(5) NOT NULL default '0',
`hasil_c` int(5) NOT NULL default '0',
`hasil_d` int(5) NOT NULL default '0',
`hasil_e` int(5) NOT NULL default '0',
`aktif` enum('Y','N') NOT NULL,
PRIMARY KEY (`id_polling`)
);


INSERT INTO `polling` (`id_polling`, `pertanyaan`, `jawab_a`, `jawab_b`, `jawab_c`, `jawab_d`, `jawab_e`, `hasil_a`, `hasil_b`, `hasil_c`, `hasil_d`, `hasil_e`, `aktif`) VALUES
(1, 'Pilih browser favorit Anda?', 'Internet Explorer', 'Mozilla Firefox', 'Opera', 'Konqueror', 'Google Chrome', 15, 79, 23, 20, 21, 'Y');

Buat skrip untuk menampilkan polling dari database.
mysql_connect("localhost","root","");
mysql_select_db("latihan");
$polling=mysql_query("select * from polling where aktif='Y'");
$p=mysql_fetch_array($polling);
echo "<form method=POST action='?act=hasilpoling'>";
echo "$p[pertanyaan]<br />";
echo "<input type='hidden' name='id' value='$p[id_polling]' />";
echo "<input type='radio' name='pilihan' value='a' />$p[jawab_a]<br />
<input type='radio' name='pilihan' value='b' />$p[jawab_b]<br />
<input type='radio' name='pilihan' value='c' />$p[jawab_c]<br />
<input type='radio' name='pilihan' value='d' />$p[jawab_d]<br />
<input type='radio' name='pilihan' value='e' />$p[jawab_e]<br />
<input type='submit' value='Vote' name='vote' />";
echo "</form>";
echo "<a href='?act=lihatpolling'>Lihat Hasil Polling</a>";

maksud dari script diatas menampilkan daftar pertanyaan yang aktif beserta opsi jawaban.

selanjutnya kita akan membuat script untuk memproses polling. berikut skripnya
if (isset($_COOKIE["poling"])) {
echo "Sorry, anda sudah pernah melakukan voting terhadap poling ini.";
} else {
// membuat cookie dengan nama poling // cookie akan secara otomatis terhapus dalam waktu 24 jam
setcookie("poling", "sudah poling", time() + 3600 * 24);
echo "<span>» <b>Hasil Polling</b></span><br /><br />";
if ($_POST[pilihan]=="a") {
$u=mysql_query("UPDATE polling SET hasil_a=hasil_a+1 WHERE id_polling='$_POST[id]'");
}
elseif ($_POST[pilihan]=="b") {
$u=mysql_query("UPDATE polling SET hasil_b=hasil_b+1 WHERE id_polling='$_POST[id]'");
}
elseif($_POST[pilihan]=="c") {
$u=mysql_query("UPDATE polling SET hasil_c=hasil_c+1 WHERE id_polling='$_POST[id]'");
}
elseif($_POST[pilihan]=="d") {
$u=mysql_query("UPDATE polling SET hasil_d=hasil_d+1 WHERE id_polling='$_POST[id]'");
}
elseif($_POST[pilihan]=="e") {
$u=mysql_query("UPDATE polling SET hasil_e=hasil_e+1 WHERE id_polling='$_POST[id]'");
}
echo "<p align=center>Terimakasih atas partisipasi Anda mengikuti poling kami<br /><br />
Hasil poling saat ini: </p><br />";
}

skrip untuk menampilkan hasil polling yang aktif
echo "<span>» <b>Hasil Polling</b></span><br /><br />";
echo "<table width=100% style='border: 1pt dashed #0000CC;padding: 10px;font-size:9pt; font-family:Arial;'>";
$jml=mysql_query("SELECT * FROM polling WHERE aktif='Y'");
$j=mysql_fetch_array($jml);
$jml_vote = $j[hasil_a] + $j[hasil_b] + $j[hasil_c] + $j[hasil_d] + $j[hasil_e];
$pros_a = sprintf("%2.1f",(($j[hasil_a]/$jml_vote)*100));
$pros_b = sprintf("%2.1f",(($j[hasil_b]/$jml_vote)*100));
$pros_c = sprintf("%2.1f",(($j[hasil_c]/$jml_vote)*100));
$pros_d = sprintf("%2.1f",(($j[hasil_d]/$jml_vote)*100));
$pros_e = sprintf("%2.1f",(($j[hasil_e]/$jml_vote)*100));
$gbr_va = $pros_a * 3;
$gbr_vb = $pros_b * 3;
$gbr_vc = $pros_c * 3;
$gbr_vd = $pros_d * 3;
$gbr_ve = $pros_e * 3;
echo "<tr><td width=120>$j[jawab_a] ($j[hasil_a]) </td><td>
<img src='blue.png' width='$gbr_va' height=18 border=0> $pros_a %
</td></tr>
<tr><td width=120>$j[jawab_b] ($j[hasil_b]) </td><td>
<img src='blue.png' width='$gbr_vb' height=18 border=0> $pros_b %
</td></tr>
<tr><td width=120>$j[jawab_c] ($j[hasil_c]) </td><td>
<img src='blue.png' width='$gbr_vc' height=18 border=0> $pros_c %
</td></tr>
<tr><td width=120>$j[jawab_d] ($j[hasil_d]) </td><td>
<img src='blue.png' width='$gbr_vd' height=18 border=0> $pros_d %
</td></tr>
<tr><td width=120>$j[jawab_e] ($j[hasil_e]) </td><td>
<img src='blue.png' width='$gbr_ve' height=18 border=0> $pros_e %
</td></tr>";
echo "</table>
<p>Jumlah Voting: <b>$jml_vote</b></p>
<p><a href='javascript:history.back()'>&laquo; back</a></p>";

Skrip selengkapnya bisa di unduh disini. Sekian dulu, kalo ada yang keliru mohon untuk diluruskan. Terima kasih.

10 thoughts on “Membuat Polling dinamis dengan PHP

    Imran said:
    18 Maret 2010 pukul 1:15 pm

    Kalo script diatas hanya bisa membuat 4 jawaban..
    saya sudah buat scrip yang bisa memilih jawaban lebih dari 4 pilihan mas

    terimakasih atas informasinya

      masbay responded:
      19 Maret 2010 pukul 6:51 am

      sama-sama mas.

    belalangtue said:
    30 Desember 2010 pukul 7:05 pm

    makasih banget,,saya lagi ada tugas kecil-kecilan,,,maklum bru bisa yg ginian,,,,,,,,,,,,

      masbay responded:
      30 Desember 2010 pukul 7:37 pm

      sama-sama, semoga bermanfaat

    Jumaini Abdy said:
    10 Juni 2012 pukul 10:07 pm

    mas klu buat koneksi dta base kedreamweaver8 memasukan dta poto waktu dijalankn di web supaya bisa memasukan poto gmna caranya???

    Prasetyama Hidayat said:
    5 Maret 2013 pukul 10:27 pm

    kalo saya ingin menambahkan vooting pertanyaanya gmna sintaks nya mas
    Trima Kasih

    Megan said:
    9 Maret 2013 pukul 7:49 am

    Hello, this weekend is fastidious in favor of me,
    because this time i am reading this great informative post here at my home.

    Malinda said:
    1 April 2013 pukul 12:54 pm

    You could definitely see your skills within the work
    you write. The sector hopes for even more passionate writers like you who are not afraid to mention how
    they believe. All the time go after your heart.

    Anal Toys said:
    14 Mei 2013 pukul 3:08 am

    My family always say that I am killing my time here at net, but I know I am getting familiarity every day by reading such nice
    articles or reviews.

    Tiffani said:
    19 Desember 2013 pukul 6:49 pm

    Hello it’s me, I am also visiting this site daily, this web page is actually good
    and the viewers are truly sharing good thoughts.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s