Membuat Poling Dinamis Dengan PHP

sql tabel_pertanyaan
  1. --
  2. -- Table structure for table `polling_pertanyaan`
  3. --
  4.  
  5. CREATE TABLE `polling_pertanyaan` (
  6. `idtanya` int(5) NOT NULL auto_increment,
  7. `pertanyaan` tinytext NOT NULL,
  8. `tanggal` date NOT NULL,
  9. PRIMARY KEY (`idtanya`)
  10. );
  11.  
  12. CREATE TABLE `polling_jawaban` (
  13. `nomor` int(5) NOT NULL auto_increment,
  14. `idtanya` int(5) NOT NULL,
  15. `jawaban` tinytext NOT NULL,
  16. `jumlah` int(5) NOT NULL,
  17. PRIMARY KEY (`nomor`)
  18. );
  19.  
polling.html
  1. <script>
  2. function proses(){
  3. var teks = "";
  4. j = document.getElementById("jumlah").selectedIndex;
  5. for(i=1;i<=j;i++){
  6. teks = teks + "Option " + i + " <input type=text name=jawaban[] size=50><br>";
  7. }
  8. document.getElementById("opt").innerHTML = teks;
  9. }
  10. </script>
  11.  
  12. <form method="POST" action="inputpolling.php">
  13. Pertanyaan Polling :<br>
  14. <textarea rows="3" name="tanya" cols="36"></textarea><p>
  15. <p>Jumlah Jawaban : <select size="1" name="jumlah" id=jumlah onchange=proses()>
  16. <option>0</option>
  17. <option>1</option>
  18. <option>2</option>
  19. <option>3</option>
  20. <option>4</option>
  21. <option>5</option>
  22. <option>6</option>
  23. <option>7</option>
  24. <option>8</option>
  25. <option>9</option>
  26. </select></p>
  27. <div id=opt></div>
  28. <p><input type="submit" value="Submit"></p>
  29. </form>

inputpolling.php
  1. <?php
  2. mysql_connect("localhost","root","");
  3. mysql_select_db("test");
  4.  
  5. $tanya = $_POST['tanya'];
  6. $tny = mysql_query("INSERT INTO polling_pertanyaan VALUES(null,'$tanya',NOW())");
  7.  
  8. $pertanyaan = mysql_query("SELECT idtanya FROM polling_pertanyaan ORDER BY idtanya DESC LIMIT 1");
  9. $t = mysql_fetch_array($pertanyaan);
  10. $idtanya = $t['idtanya'];
  11.  
  12. foreach($_POST['jawaban'] as $value){
  13. $masuk = mysql_query("INSERT INTO polling_jawaban VALUES(null,$idtanya,'$value',0)");
  14. }
  15.  
  16. if($masuk){
  17. echo "<a href=lihatpolling.php>Lihat Polling</a>";
  18. }else{
  19. echo "gagal";
  20. }
  21. ?>

lihatpolling.php
  1. <?php
  2. mysql_connect("localhost","root","");
  3. mysql_select_db("test");
  4. ?>
  5. <html>
  6. <head>
  7. <title>Polling Management</title>
  8. <style>
  9. td.poll{background-color:#efefef;font-family:arial;font-size:10pt}
  10. </style>
  11. </head>
  12. <body>
  13. <form action=hitungpolling.php method=post>
  14. <table border=0 width=250 cellpadding=4 cellspacing=3>
  15. <?php
  16. $arsip = 0;
  17. if(isset($_GET['no'])){
  18. $arsip = 1;
  19. //jika ini adalah arsip, maka idtanya kita ambil nilainya dari variabel $_GET['no']
  20. $idtanya = $_GET['no'];
  21. $polling = mysql_query("SELECT * FROM polling_pertanyaan WHERE idtanya=$idtanya");
  22. while($p = mysql_fetch_array($polling)){
  23. echo "<tr><td colspan=2 class=poll>".$p['pertanyaan']."</td></tr>";
  24. }
  25. }else{
  26. //jika bukan menampilkan arsip, idtanya kita ambil yang terakhir
  27. $polling = mysql_query("SELECT * FROM polling_pertanyaan ORDER BY idtanya DESC LIMIT 1");
  28. while($p = mysql_fetch_array($polling)){
  29. echo "<tr><td colspan=2 class=poll>".$p['pertanyaan']."</td></tr>";
  30. $idtanya = $p['idtanya'];
  31. }
  32. }
  33.  
  34. $jawaban = mysql_query("SELECT * FROM polling_jawaban WHERE idtanya=$idtanya");
  35. while($j = mysql_fetch_array($jawaban)){
  36. $jawab[] = $j['jawaban'];
  37. $nomor[] = $j['nomor'];
  38. $jumlah[] = $j['jumlah'];
  39. $total = $total + $j['jumlah'];
  40. }
  41.  
  42. for($i=0;$i<count($nomor);$i++){
  43. if($jumlah[$i]>0){
  44. $persen = sprintf("%01.1f",($jumlah[$i]/$total)*100);
  45. }else{
  46. $persen = 0;
  47. }
  48. if($arsip==1){//kalau hanya menampilkan arsip polling sebelumnya tidak ada radio button
  49. echo "<tr><td class=poll>";
  50. }else{
  51. echo "<tr><td class=poll><input type=radio name=jwb value=".$nomor[$i].">";
  52. }
  53. echo $jawab[$i]."</td><td class=poll>".$jumlah[$i]." ($persen%)</td></tr>";
  54. }
  55. echo "<tr><td class=poll>TOTAL</td><td class=poll>$total</td></tr></table>";
  56. if($arsip==0){
  57. echo "<input type=submit value=Pilih></form>";
  58. }
  59. ?>
  60. <h4>Arsip Polling Sebelumnya</h4>
  61. <ul>
  62. <?php
  63. $pol = mysql_query("SELECT * FROM polling_pertanyaan ORDER BY idtanya DESC LIMIT 1");
  64. $po = mysql_fetch_array($pol);
  65. $idakhir = $po['idtanya'];
  66. echo "<li><a href=lihatpolling.php>".$po['pertanyaan']."</a>";
  67. $pertanyaan = mysql_query("SELECT * FROM polling_pertanyaan WHERE idtanya < $idakhir ORDER BY idtanya DESC");
  68. while($a = mysql_fetch_array($pertanyaan)){
  69. echo "<li><a href=lihatpolling.php?no=".$a['idtanya'].">".$a['pertanyaan']."</a>";
  70. }
  71. ?>
  72. </ul>
  73. </body>
  74. </html>

hitungpolling.php
  1. <?php
  2. mysql_connect("localhost","root","");
  3. mysql_select_db("test");
  4. $jwb = $_POST['jwb'];
  5. $masuk = mysql_query("UPDATE polling_jawaban SET jumlah=jumlah+1 WHERE nomor=$jwb");
  6. if($masuk){
  7. header("location:lihatpolling.php");
  8. }else{
  9. echo "Gagal";
  10. }
  11. ?>

Download Now Preview

Terima Kasih Sobat Sudah:

1. Berkomentar Dengan Sopan
2. Tidak Memasukkan Link Aktif Dalam Form Komentar
3. Berkomentar Sesuai Artikel/Postingan
4. Berilah Informasi Kepada Admin Jika ada script yang Sudah tidak berfungsi
5. komentar Jorok/kasar /berbau Sara/Porno /saya anggap sebagai SPAM
6. Tidak Mengcopy paste artikel ini ( Ingat Bahaya Copy paste )

Total Tayangan Halaman

Postingan Populer

© Copyright 2014 - All Rights Reserved Tommy Ardianto
notifikasi
close