Bu PHP projesinde , biz bir kamuoyu yoklaması uygulama oluşturmak için gidiyoruz.
Kamuoyu yoklaması 3 ana bileşenden oluşacaktır;
Ön denetleyici - bu, yüklenecek HTML kodunu belirleyecek dizin sayfasıdır. Bu, uygulamamızın tek bir giriş noktasına sahip olmasını sağlayacaktır. Bu bize uygulama üzerinde daha fazla kontrol sağlayacaktır.
İş Mantığı - bu, veritabanıyla etkileşim için PHP kodunu içerecektir. Bu, iş mantığını sunumdan ayırmamızı sağlayarak uygulamamızın bakımını kolaylaştırır.
Görünümler - bu, HTML kodunu içerecektir. İki sayfamız olacak;
- görüş.html.php - bu, soru ve seçeneklerle birlikte HTML kodunu içerecektir
- results.html.php - bu, fikir anketi sonuçlarını görüntüleyen HTML kodunu içerecektir
Yapılan varsayımlar
Kamuoyu yoklaması soruyu soracak -
En sevdiğiniz JavaScript Kitaplığı nedir?
Cevaplar olurdu
- JQuery
- MooTools
- YUI Kitaplığı
- Glow
Uygulamayı oluşturmanın adımları şunlardır -
Adım 1) Veritabanı Bağlantısı
Bu bölüm MySQL ve nasıl yönetileceği hakkında bilgi sahibi olduğunuzu varsayar, eğer bu MySQL'e aşina değilseniz, SQL eğitimleri bölümümüze bakın.
Uygulamamız sadece 3 alanlı bir tabloya sahip olacaktır;
- id - numarayı birincil anahtar olarak otomatik oluştur
- seçim - başkanlık adayını temsil eden numara
- ts - oylama için zaman damgası
Aşağıdaki betik js_libraries tablomuzu oluşturur.
Adım 2) Uygulamamızı kodlamak
Şimdi veritabanı bağlantısını idare edecek iş mantığı katmanımızı oluşturalım. 'idea_poll_model.php'
db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL serverif (!$this->db_handle) die("Unable to connect to MySQL: " . mysqli_error());if (!mysqli_select_db($this->db_handle,$this->db)) die("Unable to select database: " . mysqli_error());}private function execute_query($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt); //execute SQL statementreturn !$result ? FALSE : TRUE;}public function select($sql_stmt) {$result = mysqli_query($db_handle,$sql_stmt);if (!$result) die("Database access failed: " . mysqli_error());$rows = mysqli_num_rows($result);$data = array();if ($rows) {while ($row = mysqli_fetch_array($result)) {$data = $row;}}return $data;}public function insert($sql_stmt) {return $this->execute_query($sql_stmt);}public function __destruct(){mysqli_close($this->db_handle);}}?>
İŞTE,
- "Public function __construct ()", veritabanı bağlantısını kurmak için kullanılan sınıf yapıcı yöntemidir
- "Public function execute_query (…)", ekleme, güncelleme ve silme gibi sorguları yürütme yöntemidir
- "Public function select", veritabanından veri alma ve sayısal bir dizi döndürme yöntemidir.
- "Public function insert (…)", execute_query yöntemini çağıran ekleme yöntemidir.
- "Public function __destruct ()", veritabanı bağlantısını kapatan sınıf yıkıcıdır.
Şimdi ön denetleyiciyi index.php oluşturalım
alert('You did not vote!');";}if (count($_POST) > 1) {$ts = date("Y-m-d H:i:s");$option = $_POST['vote'][0];$sql_stmt = "INSERT INTO js_libraries (`choice`,`ts`) VALUES ($option,'$ts')";$model->insert($sql_stmt);$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries;";$choices_count = $model->select($sql_stmt);$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++) {$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt);$table_rows .= "";}require 'results.html.php';exit;}require 'opinion.html.php';?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
İŞTE,
- "'İdea_poll_model.php' gerektirir;" iş mantığı sınıfını yükler
- "$ Model = new Opinion_poll_model ();" iş mantığı sınıfının bir örneğini oluşturur
- "İf (count ($ _ POST) == 1)…" veri doğrulamasını gerçekleştirir ve aday değilse bir mesaj kutusu görüntülemek için JavaScript kullanır.
- "İf (count ($ _ POST)> 1)…", $ _POST dizisindeki öğelerin sayısını sayarak bir oy seçilip seçilmediğini kontrol eder. Hiçbir öğe seçilmediyse, $ _POST yalnızca gönder öğesini içerecektir. Bir aday seçilmişse, $ _POST dizisi iki öğe olacaktır: gönderme ve oylama öğesi. Bu kod aynı zamanda yeni bir oylama kaydı eklemek ve ardından sonuçlar sayfasını görüntülemek için kullanılır.
- "çıkış;" sonuçlar görüntülendikten sonra komut dosyası yürütmesini sonlandırmak için kullanılır, böylece anket formu görüntülenmez.
- "'İdea.html.php' gerektirir;" hiçbir şey seçilmediyse fikir anketi formunu görüntüler.
Şimdi görünümleri oluşturalım. görüş.html.php
JavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript?
results.html.php
JavaScript Libraries Poll Results Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Adım 3) Uygulamamızı test etme
Dosyaları ideapoll klasörüne kaydettiğinizi varsayarsak, http: // localhost / ideapoll / URL'sine gidin.
Bir JS kitaplığı seçmeden Tamam düğmesine tıklarsanız, aşağıdaki mesaj kutusunu alırsınız.
Bir JS kitaplığı seçin ve ardından Tamam düğmesine tıklayın. Aşağıda gösterilene benzer sonuçlar sayfası alacaksınız.
Özet
- Uygulamanızı iş mantığına bölerek, ön denetleyici görünüm katmanları iyi bir uygulama tasarımı uygulamasıdır
- JavaScript, istemci tarafında doğrulama yapmak için kullanışlıdır
- Hem HTML hem de PHP kodlarını içeren dosyalar için file.html.php kullanmak iyi bir programlama uygulamasıdır.
- Kamuoyu yoklaması uygulaması, önceki derslerde öğrenilen bilgilerin bir veritabanı arka ucuyla çalışan bir uygulama geliştirmek için nasıl bir araya getirilebileceğini gösterir.