PHP Projeleri: Bir Fikir Anket Uygulaması Oluşturun

İçindekiler:

Anonim

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 .= "
" . $ libraries [$i] . " Got:" . $result[0] . " votes

";}require 'results.html.php';exit;}require 'opinion.html.php';?>

İŞ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?

JQuery
MooToolsl
YUI Library
Glow

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.