Type something and hit enter

By On
advertise here

Pemrograman berorientasi objek digunakan untuk merancang, mengembangkan dan mengimplementasikan banyak aplikasi sederhana dan kompleks. Kami telah melihat fitur-fitur berorientasi objek dari PHPdalam tutorial sebelumnya. Mari kita gunakan pemrograman berorientasi objek untuk membuat sistem jajak pendapat PHP .
Saya telah membuat sistem jajak pendapat untuk membiarkan pengguna memilih kursus favorit mereka. Pengguna akan memilih kursus favorit mereka dengan menggunakan opsi radio bentuk HTML. Saat mengirimkan kursus yang dipilih, kode PHP akan memanggil fungsi kelas model untuk melakukan tindakan jajak pendapat.
menjadi sukarelawan
Saya menggunakan dua kelas Poll.php dan Dao.php dalam contoh jajak pendapat PHP ini. Kelas model Poll.php berisi fungsi untuk menambahkan entri suara baru ke database dan mendapatkan kursus dengan jumlah suara yang ada. Di kelas Dao.php saya telah berurusan dengan fungsi akses database untuk melakukan operasi membuat dan membaca .

Impor Tabel Database

Kursus favorit disimpan dalam tabel tbl_courses . ID mata kuliah dipetakan dalam tabel tbl_course_vote dengan hubungan satu ke banyak . Jalankan skrip SQL yang ditunjukkan di bawah ini untuk membuat struktur tabel database dan data yang diperlukan. Jika tidak, Anda dapat mengimpor file SQL yang telah saya tambahkan ke unduhan kode di akhir posting ini.
  BUAT TABEL `tbl_course` (
   `id` int (11) BUKAN NULL,
   `name` varchar (255) NOT NULL,
   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 ) ENGINE = InnoDB DEFAULT CHARSET = utf8;

 INSERT INTO `tbl_course` (` id`, `name`,` date`) NILAI
 (1, 'Artificial Intelligence', '2018-03-27 08:53:59'),
 (2, 'Keamanan Jaringan', '2018-03-27 08:54:27'),
 (3, 'Information Retrieval', '2018-03-27 08:54:54'),
 (4, 'Global Positioning System', '2018-03-27 08:56:53');

 -------------------------------------------------- --------

 BUAT TABEL `tbl_course_vote` (
   `id` int (11) BUKAN NULL,
   `course_id` int (20) BUKAN NULL,
   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 ) ENGINE = InnoDB DEFAULT CHARSET = utf8; 

Kirim Data Polling melalui Opsi Radio

Formulir HTML ini menunjukkan daftar program dari database dengan opsi radio. Pengguna dapat memilih kursus favorit mereka menggunakan opsi radio ini. Saat mengirimkan kursus yang dipilih, kode PHP akan melakukan tindakan jajak pendapat dengan memanggil fungsi kelas model. Setelah memproses data jajak pendapat, saya menunjukkan jumlah suara yang ditambahkan untuk setiap kursus.
  <div class = "poll-container">
     <? php
             if (empty ($ _ POST ["submit"])) {
                 $ result = $ pollObject-> getCource ();
     ?>
     <form method = "POST" action = "">

         <? php
                 foreach ($ hasil sebagai $ k => $ v) {
         ?>
         <div class = 'option-row'>
             <input class = 'radio-input' type = 'radio' name = 'vote'
                 value = '<? php echo $ result [$ k] ["id"];  ?> '/>
             <? php echo $ result [$ k] ["name"];  ?>
         </ div>
         <? php}?>
         <input id = "btnSubmit" type = "submit" name = "submit" value = "Kirim" />
     </ form>
     <div> </ div>
     <? php
             } lain {
                 $ pollObject-> addVote ($ subjectId);
                 $ result = $ pollObject-> getCourcewithVote ();
                 foreach ($ hasil sebagai $ k => $ v) {
     ?>
     <div class = 'poll'>
         <? php echo $ result [$ k] ["name"];  ?>
         <b>
             <? php echo $ result [$ k] ["vote_count"];  ?>
         </ b> suara
     </ div>

     <? php 
   }
     } 
     ?>
 </ div> 

Poll.php

Kelas ini mencakup fungsi untuk menambah entri suara baru dan untuk mendapatkan kursus dan jumlah suara yang ada dari database. Saat mengirimkan data jajak pendapat, objek kelas Poll akan dibuat untuk menjalankan fungsinya addVote () . Dalam fungsi ini, sisipkan kueri dibuat dengan menggunakan data jajak pendapat yang dikirimkan oleh pengguna.
  <? php
 require_once 'Dao.php';
 
 polling class {
      
     public function addVote ($ subjectOption)
     {
        $ daoObject = new Dao ();
        $ sql = "INSERT INTO tbl_subject_vote (subject_id) VALUES ('". $ subjectOption. "')";
        insert $ daoObject-> ($ sql); 

     }
    
     fungsi publik getCource ()
     {
         $ daoObject = new Dao ();
         $ sql = "SELECT * FROM tbl_course order by id";
         $ result = $ daoObject-> select ($ sql);
         hasil $ hasil;
     }
    
    
    
     fungsi publik getCourcewithVote ()
     {
         $ daoObject = new Dao ();
         $ sql = "SELECT * FROM tbl_course order by id";
         $ result = $ daoObject-> select ($ sql);
         if (! empty ($ result)) {
             foreach ($ hasil sebagai $ k => $ v) {
                 $ result [$ k] ["vote_count"] = 0;
                 $ sql_stmt = "SELECT COUNT (course_id) sebagai vote_count FROM tbl_course_vote WHERE course_id =".  $ hasil [$ k] ["id"];
                 $ voteResult = $ daoObject-> select ($ sql_stmt);
                 if (! empty ($ voteResult [0] ["vote_count"])) {
                     $ result [$ k] ["vote_count"] = $ voteResult [0] ["vote_count"];
                 }
             }
         }
        
         hasil $ hasil;
     }
 }

 ?>

Dao.php

Di kelas ini, fungsi terkait database seperti membuat dan membaca operasi dilakukan. dengan menggunakan fungsi-fungsi ini data jajak pendapat akan diperbarui dalam database. Konfigurasi database ditetapkan sebagai properti dari kelas ini. Sambungan dibangun pada konstruktor kelas dan ditutup pada destruktor.
  <? php

 class Dao {

  $ db_handle pribadi;
 
  private $ host = 'localhost';
  private $ database = 'phpsamples';
  private $ userid = 'root'; 
  $ password pribadi = 'test';


     fungsi publik __construct () {
       
         $ this-> db_handle = mysqli_connect ($ this-> host, $ this-> userid, $ this-> password, $ this-> database); 

         if (! $ this-> db_handle)
         {
             die ("Connection not established:". mysqli_error ());
         }

         if (! mysqli_select_db ($ this-> db_handle, $ this-> database))
         {
                 die ("Tidak dapat memilih database:". mysqli_error ());
         }

     }

     fungsi publik pilih ($ sql) {

         $ result = mysqli_query ($ this-> db_handle, $ sql);

         if (! $ result)
         {
             die ("Tidak dapat mengakses database:". mysqli_connect_error ());
         }

         $ rows = mysqli_num_rows ($ hasil);

         $ rowdata = array ();

         if ($ rows)
         {
             while ($ row = mysqli_fetch_assoc ($ hasil))
             {
                 $ rowdata [] = $ row;
             }
         }

         mengembalikan $ rowdata;

     }
   

     insert fungsi publik ($ sql)
     {
         $ result = mysqli_query ($ this-> db_handle, $ sql);
        
         hasil $ hasil;
     }

     fungsi publik __destruct ()
     {
         mysqli_close ($ this-> db_handle);

     }

 }

 ?> 

PHP Berorientasi Objek Output Sistem Poll

Screenshot pertama menampilkan opsi radio bentuk HTML dengan program dari database. Setelah mengirimkan opsi jajak pendapat, jumlah suara akan ditampilkan untuk setiap kursus seperti yang ditunjukkan pada screenshot kedua.
pilihan polling
pembaruan-penghitungan suara


Tutorial kode PHP ini diterbitkan pada tanggal 27 Maret 2018.



Click to comment