このPHPプロジェクトでは、 世論調査アプリケーションを作成します。
世論調査は3つの主要な要素で構成されます。
フロントコントローラー –これは、ロードするHTMLコードを決定するインデックスページです。 これにより、アプリケーションに単一のエントリポイントが確保されます。 これにより、アプリケーションをより細かく制御できるようになります。
ビジネスの論理 –これには、データベースと対話するためのPHPコードが含まれます。 これにより、ビジネスロジックをプレゼンテーションから分離して、アプリケーションの保守を容易にすることができます。
ビュー –これにはHTMLコードが含まれます。 つまり、2つのページがあります。
- オピニオン.html.php–これには質問とオプションを含むHTMLコードが含まれます
- results.html.php –これには世論調査の結果を表示するHTMLコードが含まれます
行われた仮定
世論調査は質問をします–
あなたのお気に入りは JavaScript 図書館?
答えは
- JQuery
- MooTools
- YUIライブラリ
- グロー
アプリケーションを作成する手順は次のとおりです–
ステップ1)データベース接続
このセクションは、MySQLの知識とその管理方法を前提としています。これらのMySQLに精通していない場合は、 SQLチュートリアル セクション。
このアプリケーションには、3つのフィールドのみを持つ1つのテーブルがあります。
- id –主キーとして番号を自動生成します
- 選択–大統領候補を表す番号
- ts –投票のタイムスタンプ
以下のスクリプトは、js_librariesテーブルを作成します。
<?php CREATE TABLE `js_libraries` ( `id` int(11) NOT NULL AUTO_INCREMENT, `choice` tinyint(4) NOT NULL DEFAULT '0', `ts` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) ); ?>
ステップ2)アプリケーションのコーディング
次に、データベース接続を処理するビジネスロジックレイヤーを作成しましょう。 ‘opinion_poll_model.php’
<?php class Opinion_poll_model { private $db_handle; private $host="localhost"; private $db = 'opinion_poll';private $uid = 'root'; private $pwd = 'melody'; public function __construct() { $this->db_handle = mysqli_connect($this->host, $this->uid, $this->pwd); //connect to MySQL server if (!$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 statement return !$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); } } ?>
ここに、
- 「publicfunction__construct()」は、データベース接続を確立するために使用されるクラスコンストラクターメソッドです。
- 「publicfunctionexecute_query(…)」は、挿入、更新、削除などのクエリを実行するためのメソッドです。
- 「publicfunctionselect」は、データベースからデータを取得して数値配列を返すためのメソッドです。
- 「publicfunctioninsert(…)」は、execute_queryメソッドを呼び出すinsertメソッドです。
- 「publicfunction__destruct()」は、データベース接続を閉じるクラスデストラクタです。
フロントコントローラーを作成しましょう index.php
<?php require 'opinion_poll_model.php'; $model = new Opinion_poll_model(); if (count($_POST) == 1) { echo "<script>alert('You did not vote!');</script>"; } 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 .= "<tr><td>" . $ libraries [$i] . " Got:</td><td><b>" . $result[0] . "</b> votes</td></tr>"; } require 'results.html.php'; exit; } require 'opinion.html.php'; ?>
ここに、
- 「require’opinion_poll_model.php ‘;」 ビジネスロジッククラスをロードします
- 「$ model = new Opinion_poll_model();」 ビジネスロジッククラスのインスタンスを作成します
- 「if(count($ _ POST)== 1)…」は、データ検証を実行し、候補者が投票されていない場合はJavaScriptを使用してメッセージボックスを表示します。
- 「if(count($ _ POST)> 1)…」は、$ _ POST配列内のアイテムの数をカウントすることにより、投票が選択されたかどうかを確認します。 アイテムが選択されていない場合、$ _ POSTには送信アイテムのみが含まれます。 候補者が選択されている場合、$ _ POST配列には、送信項目と投票項目の2つの要素が含まれます。 このコードは、新しい投票レコードを挿入して結果ページを表示するためにも使用されます
- “出口;” 結果が表示された後にスクリプトの実行を終了して、世論調査フォームが表示されないようにするために使用されます。
- 「require’opinion.html.php ‘;」 何も選択されていない場合は、世論調査フォームを表示します。
次に、ビューを作成しましょう。 意見.html.php
<html> <head> <title>JavaScript Libraries - Opinion Poll</title> </head> <body> <h2>JavaScript Libraries - Opinion Poll</h2> <p><b>What is your favorite JavaScript?</b></p> <form method="POST" action="index.php"> <p> <input type="radio" name="vote" value="1" />JQuery <br /><input type="radio" name="vote" value="2" />MooToolsl <br /><input type="radio" name="vote" value="3" />YUI Library <br /><input type="radio" name="vote" value="4" />Glow </p> <p><input type="submit" name="submitbutton" value="OK" /></p> </form> </body> </html>
results.html.php
<html> <head> <title>JavaScript Libraries Poll Results</title> </head> <body> <h2>Opinion Poll Results</h2> <p><b>What is your favorite JavaScript Library?</b></p> <p><b><?php echo $choices_count[0]; ?></b> people have thus far taken part in this poll:</p> <p> <table> <?php echo($table_rows); ?> </table> </body> </html>
ステップ3)アプリケーションをテストする
ファイルをopinionpollフォルダーに保存したと仮定して、URL http:// localhost / opinionpoll /を参照します。
JSライブラリを選択せずに[OK]ボタンをクリックすると、次のメッセージボックスが表示されます。
JSライブラリを選択し、[OK]ボタンをクリックします。 以下に示すような結果ページが表示されます。
概要
- アプリケーションをビジネスロジックに分割するフロントコントローラービューレイヤーは、優れたアプリケーション設計手法です。
- JavaScriptは、クライアント側の検証を実行するのに役立ちます
- HTMLコードとPHPコードの両方を含むファイルにはfile.html.phpを使用することをお勧めします。
- 世論調査アプリケーションは、前のレッスンで学んだ知識をまとめて、データベースバックエンドを備えた実用的なアプリケーションを開発する方法を示しています。
Hope this helps!
Source link