現在の位置: ホーム> 最新記事一覧> PHP投票システムの実装チュートリアル:データベースの設計からコードの例まで

PHP投票システムの実装チュートリアル:データベースの設計からコードの例まで

M66 2025-09-19

導入

インターネットの継続的な開発により、オンライン投票機能は、さまざまなWebサイトやプラットフォームにとって徐々に重要なインタラクティブな方法になりました。 PHP言語を使用して、ユーザーの投票、結果統計、管理者管理機能をサポートする基本的な投票システムをすばやく実装できます。この記事では、データベース設計からコード実装までの投票システムの構築プロセスを示します。

システム要件

この投票システムには、主に次の機能が含まれています。

  • ユーザーは投票のトピックとオプションを表示できます
  • ユーザーはお気に入りのオプションに投票できます
  • ユーザーは各オプションの投票数を表示できます
  • 同じユーザーが繰り返し投票することはできません
  • 管理者は、投票のトピックとオプションを追加、変更、削除できます
  • 管理者は投票結果を表示できます

データベース設計

上記の機能をサポートするには、次のデータテーブルを設計する必要があります。

  • 投票_SubjectsIDタイトルcreated_atを含む投票のトピックを店舗
  • 投票_optionsidsubject_idoption_namevotesなどの投票オプションをストア
  • 投票idoption_idip_addressなどのユーザー投票記録を保存します

コード実装

投票システムの主要なPHP実装の例は次のとおりです。

データベースに接続します:

<?php
$host = 'localhost';
$db = 'vote_system';
$user = 'root';
$pass = '';
$conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
?>

投票のトピックとオプションを照会します。

<?php
$sql = 'SELECT * FROM vote_subjects';
$stmt = $conn->クエリ($ sql);
$ subjects = $ stmt-> fetchall(pdo :: fetch_assoc);

foreach($ subjects as $ subject){
    echo $ subject [&#39;title&#39;]。 &#39;<br> &#39;;
    $ subject_id = $ subject [&#39;id&#39;];
    $ sql = "select * from mote_options where subject_id = $ subject_id";
    $ stmt = $ conn-> query($ sql);
    $ options = $ stmt-> fetchall(pdo :: fetch_assoc);
    foreach($ options as $ option){
        echo $ option [&#39;option_name&#39;]。 &#39;:&#39;。 $ option [&#39;投票する&#39;]。 &#39;投票する<br>&#39;;
    }
}
?>

投票ロジック:

<?php
$subject_id = $_POST['subject_id'];
$option_id = $_POST['option_id'];
$ip_address = $_SERVER['REMOTE_ADDR'];

$sql = "SELECT COUNT(*) FROM votes WHERE option_id = $option_id AND ip_address = '$ip_address'";
$stmt = $conn->クエリ($ sql);
$ count = $ stmt-> fetchcolumn();

if($ count> 0){
    Echo &#39;あなたは投票するしました! &#39;;
} それ以外 {
    $ sql = "update lot_options set votes = votes + 1ここでid = $ option_id";
    $ conn-> exec($ sql);

    $ sql = "投票するに挿入(option_id、ip_address)values($ option_id、 &#39;$ ip_address&#39;)";
    $ conn-> exec($ sql);

    Echo &#39;投票するは成功しました! &#39;;
}
?>

管理者関数の例:

<?php
// 创建投票する主题
$title = $_POST['title'];
$sql = "INSERT INTO vote_subjects (title) VALUES ('$title')";
$conn-> exec($ sql);

//投票するオプションを作成$ subject_id = $ _post [&#39;subject_id&#39;];
$ option_name = $ _post [&#39;option_name&#39;];
$ sql = "Inserting into lote_options(subject_id、option_name、botes)values($ subject_id、 &#39;$ option_name&#39;、0)";
$ conn-> exec($ sql);

//投票するオプションを編集$ id = $ _post [&#39;id&#39;];
$ option_name = $ _post [&#39;option_name&#39;];
$ sql = "update lot_options set option_name = &#39;$ option_name&#39; where id = $ id";
$ conn-> exec($ sql);

//投票するオプションを削除$ id = $ _post [&#39;id&#39;];
$ sql = "bot_optionsからdelete from id = $ id";
$ conn-> exec($ sql);
?>

要約します

この記事では、PHPに基づいた単純な投票システムの実装プロセスを示し、データベース構造、ユーザー投票ロジック、および管理者の操作の例をカバーしています。このシステムは基本的な投票ニーズを満たすことができますが、実際のアプリケーションでは、セキュリティ(SQLインジェクション保護など)、ユーザー認証、フロントエンド表示の最適化を追加して、実際のシナリオでより適切に適用する必要もあります。